Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Có thể phân chia một chuỗi mỗi ký tự thứ n?

Ví dụ: giả sử tôi có một chuỗi chứa các chuỗi sau:

'1234567890'

Làm thế nào tôi có thể làm cho nó trông như thế này:

['12','34','56','78','90']

Đối với cùng một câu hỏi với một danh sách, xem làm thế nào để tôi chia một danh sách thành các khối có kích thước như nhau ?. Các kỹ thuật tương tự thường được áp dụng, mặc dù có một số biến thể.

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Karl Knechtel

59.4K10 Huy hiệu vàng86 Huy hiệu bạc132 Huy hiệu đồng10 gold badges86 silver badges132 bronze badges

hỏi ngày 28 tháng 2 năm 2012 lúc 1:48Feb 28, 2012 at 1:48

0

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']

Đã trả lời ngày 28 tháng 2 năm 2012 lúc 2:02Feb 28, 2012 at 2:02

4

Chỉ cần hoàn thành, bạn có thể làm điều này với Regex:

>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']

Đối với số lẻ của ký tự, bạn có thể làm điều này:

>>> import re
>>> re.findall('..?', '123456789')
['12', '34', '56', '78', '9']

Bạn cũng có thể làm như sau, để đơn giản hóa Regex cho các khối dài hơn:

>>> import re
>>> re.findall('.{1,2}', '123456789')
['12', '34', '56', '78', '9']

Và bạn có thể sử dụng

>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
0 nếu chuỗi dài để tạo chunk bằng chunk.

Georgy

11.1k7 Huy hiệu vàng62 Huy hiệu bạc70 Huy hiệu đồng7 gold badges62 silver badges70 bronze badges

Đã trả lời ngày 28 tháng 2 năm 2012 lúc 6:31Feb 28, 2012 at 6:31

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Sói sóithe wolf

33.2K12 Huy hiệu vàng53 Huy hiệu bạc71 Huy hiệu đồng12 gold badges53 silver badges71 bronze badges

5

Đã có một chức năng sẵn có trong Python cho việc này.

>>> from textwrap import wrap
>>> s = '1234567890'
>>> wrap(s, 2)
['12', '34', '56', '78', '90']

Đây là những gì tài liệu cho Wrap nói:

>>> help(wrap)
'''
Help on function wrap in module textwrap:

wrap(text, width=70, **kwargs)
    Wrap a single paragraph of text, returning a list of wrapped lines.

    Reformat the single paragraph in 'text' so it fits in lines of no
    more than 'width' columns, and return a list of wrapped lines.  By
    default, tabs in 'text' are expanded with string.expandtabs(), and
    all other whitespace characters (including newline) are converted to
    space.  See TextWrapper class for available keyword args to customize
    wrapping behaviour.
'''

Đã trả lời ngày 19 tháng 2 năm 2018 lúc 6:57Feb 19, 2018 at 6:57

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

10

Một cách phổ biến khác để nhóm các yếu tố thành các nhóm độ dài N:

>>> s = '1234567890'
>>> map(''.join, zip(*[iter(s)]*2))
['12', '34', '56', '78', '90']

Phương pháp này đến trực tiếp từ các tài liệu cho

>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
1.

Đã trả lời ngày 28 tháng 2 năm 2012 lúc 2:25Feb 28, 2012 at 2:25

Andrew Clarkandrew ClarkAndrew Clark

196K33 Huy hiệu vàng267 Huy hiệu bạc297 Huy hiệu Đồng33 gold badges267 silver badges297 bronze badges

5

Tôi nghĩ rằng điều này ngắn hơn và dễ đọc hơn phiên bản itertools:

def split_by_n(seq, n):
    '''A generator to divide a sequence into chunks of n units.'''
    while seq:
        yield seq[:n]
        seq = seq[n:]

print(list(split_by_n('1234567890', 2)))

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Đã trả lời ngày 28 tháng 2 năm 2012 lúc 1:53Feb 28, 2012 at 1:53

Russell Borogoverussell BorogoveRussell Borogove

Huy hiệu vàng 18K341 Huy hiệu bạc49 Huy hiệu đồng3 gold badges41 silver badges49 bronze badges

2

Sử dụng nhiều iterTools từ Pypi:

['12','34','56','78','90']
0

Đã trả lời ngày 22 tháng 6 năm 2017 lúc 10:19Jun 22, 2017 at 10:19

Tim Dielstim DielsTim Diels

3.0682 Huy hiệu vàng19 Huy hiệu bạc22 Huy hiệu đồng2 gold badges19 silver badges22 bronze badges

Tôi thích giải pháp này:

['12','34','56','78','90']
1

Đã trả lời ngày 12 tháng 9 năm 2015 lúc 23:14Sep 12, 2015 at 23:14

vlkvlkvlk

2.4113 huy hiệu vàng31 Huy hiệu bạc34 Huy hiệu đồng3 gold badges31 silver badges34 bronze badges

Bạn có thể sử dụng công thức

>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
2 từ
>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
3:

Python 2.x:

['12','34','56','78','90']
2

Python 3.x:

['12','34','56','78','90']
3

Các chức năng này có hiệu quả bộ nhớ và hoạt động với bất kỳ phép lặp.

Đã trả lời ngày 3 tháng 10 năm 2015 lúc 20:16Oct 3, 2015 at 20:16

Eugene Yarmasheugene YarmashEugene Yarmash

136K38 Huy hiệu vàng312 Huy hiệu bạc369 Huy hiệu đồng38 gold badges312 silver badges369 bronze badges

1

Điều này có thể đạt được bằng một đơn giản cho vòng lặp.

['12','34','56','78','90']
4

Đầu ra trông giống như ['12', '34', '56', '78', '90', 'a']]]

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Đã trả lời ngày 22 tháng 5 năm 2020 lúc 18:02May 22, 2020 at 18:02

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Kasem777Kasem777Kasem777

6077 Huy hiệu bạc10 Huy hiệu đồng7 silver badges10 bronze badges

3

Tôi đã bị mắc kẹt trong cùng một kịch bản.

Điều này làm việc cho tôi

['12','34','56','78','90']
5

Đầu ra

['12','34','56','78','90']
6

Đã trả lời ngày 28 tháng 11 năm 2019 lúc 14:54Nov 28, 2019 at 14:54

StrickstrickStrick

1.4149 huy hiệu bạc15 huy hiệu đồng9 silver badges15 bronze badges

1

Hãy thử mã sau:

['12','34','56','78','90']
7

Đã trả lời ngày 28 tháng 2 năm 2012 lúc 1:52Feb 28, 2012 at 1:52

Enderskillenderskillenderskill

7.0183 Huy hiệu vàng23 Huy hiệu bạc23 Huy hiệu đồng3 gold badges23 silver badges23 bronze badges

1

Thử cái này:

['12','34','56','78','90']
8

Output:

['12','34','56','78','90']
6

Đã trả lời ngày 10 tháng 7 năm 2018 lúc 3:46Jul 10, 2018 at 3:46

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

U12-ForwardU12-ForwardU12-Forward

66.6K13 Huy hiệu vàng78 Huy hiệu bạc99 Huy hiệu đồng13 gold badges78 silver badges99 bronze badges

0

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
0

Đã trả lời ngày 28 tháng 2 năm 2012 lúc 1:56Feb 28, 2012 at 1:56

Ben Wben wben w

2.46212 Huy hiệu bạc17 Huy hiệu đồng12 silver badges17 bronze badges

0

Như mọi khi, đối với những người yêu thích một lớp lót

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
1

Đã trả lời ngày 20 tháng 5 năm 2016 lúc 20:00May 20, 2016 at 20:00

SqriptersqripterSqripter

992 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges

4

>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
4 đã được đề cập trước đây. Dưới đây là bốn tùy chọn khác từ thư viện
>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
5:

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
2

Mỗi tùy chọn sau tạo ra đầu ra sau:

['12','34','56','78','90']
6

Tài liệu cho các tùy chọn đã thảo luận:

>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
6,
>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
7,
>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
8,
>>> import re
>>> re.findall('..','1234567890')
['12', '34', '56', '78', '90']
9

Đã trả lời ngày 9 tháng 2 năm 2018 lúc 1:16Feb 9, 2018 at 1:16

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

Pylangpylangpylang

37.1k11 Huy hiệu vàng123 Huy hiệu bạc112 Huy hiệu đồng11 gold badges123 silver badges112 bronze badges

0

Một giải pháp đệ quy đơn giản cho chuỗi ngắn:

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
4

Hoặc ở dạng như vậy:

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
5

, minh họa mô hình phân chia và chinh phục điển hình theo cách tiếp cận đệ quy rõ ràng hơn (mặc dù thực tế không cần thiết phải làm theo cách này)

Đã trả lời ngày 22 tháng 10 năm 2018 lúc 10:25Oct 22, 2018 at 10:25

Đất menenglealuze

1.40511 Huy hiệu bạc18 Huy hiệu đồng11 silver badges18 bronze badges

Một giải pháp với

>>> import re
>>> re.findall('..?', '123456789')
['12', '34', '56', '78', '9']
0:

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
6

Output:

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
7

Đã trả lời ngày 23 tháng 7 năm 2021 lúc 23:08Jul 23, 2021 at 23:08

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

TigerTV.ruTigerTV.ruTigerTV.ru

1.0482 Huy hiệu vàng15 Huy hiệu bạc33 Huy hiệu đồng2 gold badges15 silver badges33 bronze badges

Những câu trả lời này đều tốt đẹp và hoạt động và tất cả, nhưng cú pháp rất khó hiểu ... tại sao không viết một chức năng đơn giản?

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
8

Và gọi nó đơn giản:

>>> line = '1234567890'
>>> n = 2
>>> [line[i:i+n] for i in range(0, len(line), n)]
['12', '34', '56', '78', '90']
9

Đã trả lời ngày 22 tháng 7 lúc 9:12Jul 22 at 9:12

Hướng dẫn how can i split a string into segments of n characters python? - làm cách nào tôi có thể chia một chuỗi thành các đoạn gồm n ký tự python?

1

Làm thế nào để bạn chia một chuỗi thành một phần N trong Python?

Python..
str = "aaaabbbbcccc" ;.
#Stores chiều dài của chuỗi ..
Chiều dài = Len (str) ;.
#N xác định biến chia chuỗi trong các phần bằng nhau 'n' ..
n = 3 ;.
temp = 0 ;.
chars = int (length/n) ;.
#Stores mảng chuỗi ..

Làm thế nào để bạn chia một chuỗi thành các phân đoạn?

Solution:..
Nhận kích thước của chuỗi bằng cách sử dụng hàm chuỗi strlen () (có trong chuỗi.h).
Nhận kích thước của một phần.part_size = String_length/n ..
Vòng lặp qua chuỗi đầu vào.Trong vòng lặp, nếu chỉ mục trở thành bội số của part_size thì hãy đặt một dấu phân cách một phần (\ \ n,).

Làm thế nào để bạn chia một chuỗi thành một nhóm trong Python?

Để phân chia một chuỗi trong Python với hàm phân cách, hãy sử dụng hàm split ().Chức năng chia () chia chuỗi thành chuỗi con và trả về chúng dưới dạng mảng.use split() function. split() function splits the string into substrings and returns them as an array.