Hướng dẫn python split string by 2 character - python chia chuỗi thành 2 ký tự

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 python split string by 2 character - python chia chuỗi thành 2 ký tự

Karl Knechtel

59.3k10 Huy hiệu vàng86 Huy hiệu bạc130 Huy hiệu đồng10 gold badges86 silver badges130 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

11K7 Huy hiệu vàng62 Huy hiệu bạc68 Huy hiệu Đồng7 gold badges62 silver badges68 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

Sói sóithe wolf

33.1K12 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

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àng265 Huy hiệu bạc297 Huy hiệu Đồng33 gold badges265 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

Đã 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

17.9k3 Huy hiệu vàng40 Huy hiệu bạc49 Huy hiệu đồng3 gold badges40 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.0582 Huy hiệu vàng18 Huy hiệu bạc22 Huy hiệu đồng2 gold badges18 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ạc33 Huy hiệu Đồng3 gold badges31 silver badges33 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ạc368 Huy hiệu đồng38 gold badges312 silver badges368 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

Đã 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

Kasem777Kasem777Kasem777

5776 Huy hiệu bạc10 Huy hiệu Đồng6 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.3949 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

6.9983 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

U12-ForwardU12-ForwardU12-Forward

66.5K13 Huy hiệu vàng78 Huy hiệu bạc97 Huy hiệu đồng13 gold badges78 silver badges97 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

Pylangpylangpylang

36.8k11 Huy hiệu vàng122 Huy hiệu bạc112 Huy hiệu đồng11 gold badges122 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ạc17 Huy hiệu đồng11 silver badges17 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

TigerTV.ruTigerTV.ruTigerTV.ru

1.0482 Huy hiệu vàng14 Huy hiệu bạc33 Huy hiệu đồng2 gold badges14 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 python split string by 2 character - python chia chuỗi thành 2 ký tự

1

Làm thế nào để bạn chia một chuỗi giữa hai ký tự trong Python?

Thư viện tiêu chuẩn Python đi kèm với một hàm để chia các chuỗi: hàm chia (). Hàm này có thể được sử dụng để phân chia chuỗi giữa các ký tự. Hàm chia () có hai tham số. Đầu tiên được gọi là dấu phân cách và nó xác định ký tự nào được sử dụng để phân chia chuỗi.the split() function. This function can be used to split strings between characters. The split() function takes two parameters. The first is called the separator and it determines which character is used to split the string.

Bạn có thể chia một chuỗi bằng nhiều ký tự trong Python không?

Phương pháp 1: Chia nhiều ký tự từ chuỗi bằng cách sử dụng re.split () Đây là phương pháp hiệu quả nhất và thường được sử dụng để phân chia nhiều ký tự cùng một lúc.Nó sử dụng regex (biểu thức thông thường) để làm điều này.Split multiple characters from string using re. split() This is the most efficient and commonly used method to split multiple characters at once. It makes use of regex(regular expressions) in order to do this.

Có thể chia () lấy 2 đối số?

Phương thức chia () chấp nhận hai đối số.Đối số tùy chọn đầu tiên là dấu phân cách, chỉ định loại phân tách nào sẽ sử dụng để phân tách chuỗi.Nếu đối số này không được cung cấp, giá trị mặc định là bất kỳ khoảng trắng nào, có nghĩa là chuỗi sẽ phân chia bất cứ khi nào.. The first optional argument is separator , which specifies what kind of separator to use for splitting the string. If this argument is not provided, the default value is any whitespace, meaning the string will split whenever .

Làm thế nào tôi có thể chia một chuỗi thành các phân đoạn của n python ký tự?

Phương thức python split () được sử dụng để chia chuỗi thành các khối và nó chấp nhận một đối số gọi là phân tách.Một dấu phân cách có thể là bất kỳ ký tự hoặc một biểu tượng.Nếu không có dấu phân cách nào được xác định, thì nó sẽ phân chia chuỗi đã cho và khoảng trắng sẽ được sử dụng theo mặc định. is used to split the string into chunks, and it accepts one argument called separator. A separator can be any character or a symbol. If no separators are defined, then it will split the given string and whitespace will be used by default.