Hướng dẫn how do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

550

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

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 do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

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

10,9k7 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 how do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

Sói sóithe wolf

32.9K12 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 do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong 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à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 how do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong 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

17.9k3 Huy hiệu vàng39 Huy hiệu bạc48 Huy hiệu đồng3 gold badges39 silver badges48 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.0282 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.3913 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

135K37 Huy hiệu vàng309 Huy hiệu bạc367 Huy hiệu đồng37 gold badges309 silver badges367 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 do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong 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 do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

Kasem777Kasem777Kasem777

5676 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.3748 huy hiệu bạc15 huy hiệu đồng8 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.9683 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 do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

U12-ForwardU12-ForwardU12-Forward

66.3K13 Huy hiệu vàng77 Huy hiệu bạc96 Huy hiệu Đồng13 gold badges77 silver badges96 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.45212 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 do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

Pylangpylangpylang

36,5k11 Huy hiệu vàng121 Huy hiệu bạc111 Huy hiệu đồng11 gold badges121 silver badges111 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 how do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

TigerTV.ruTigerTV.ruTigerTV.ru

1.0382 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 how do you split a string into 3 in python? - làm thế nào để bạn chia một chuỗi thành 3 trong python?

1

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

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 các phần trong Python?

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.

Làm thế nào để bạn chia tất cả 4 ký tự trong một chuỗi trăn?

Để phân chia một chuỗi, mỗi n ký tự: Nhập phương thức Wrap () từ mô -đun TextWrap. Thông qua chuỗi và chiều rộng tối đa của mỗi lát vào phương thức.Phương thức Wrap () sẽ chia chuỗi thành một danh sách với các mục có độ dài tối đa N.Import the wrap() method from the textwrap module. Pass the string and the max width of each slice to the method. The wrap() method will split the string into a list with items of max length N.

Làm cách nào để chia một chuỗi thành nhiều phần?

Bạn có thể chia một chuỗi cho mỗi ký tự bằng một chuỗi trống ('') làm bộ chia.Trong ví dụ dưới đây, chúng tôi chia cùng một thông báo bằng một chuỗi trống.Kết quả của sự phân chia sẽ là một mảng chứa tất cả các ký tự trong chuỗi tin nhắn.using an empty string('') as the splitter. In the example below, we split the same message using an empty string. The result of the split will be an array containing all the characters in the message string.