Hướng dẫn how to split a string in python by length - cách tách một chuỗi trong python theo độ dài

Dưới đây là hai cách tiếp cận chung. Có lẽ đáng để thêm vào lib của riêng bạn. Đầu tiên yêu cầu vật phẩm có thể cắt được và thứ hai hoạt động với bất kỳ lần lặp nào (nhưng yêu cầu hàm tạo của chúng phải chấp nhận điều đó).

def split_bylen(item, maxlen):
    '''
    Requires item to be sliceable (with __getitem__ defined)
    '''
    return [item[ind:ind+maxlen] for ind in range(0, len(item), maxlen)]
    #You could also replace outer [ ] brackets with ( ) to use as generator.

def split_bylen_any(item, maxlen, constructor=None):
    '''
    Works with any iterables.
    Requires item's constructor to accept iterable or alternatively 
    constructor argument could be provided (otherwise use item's class)
    '''
    if constructor is None: constructor = item.__class__
    return [constructor(part) for part in zip(* ([iter(item)] * maxlen))]
    #OR: return map(constructor, zip(* ([iter(item)] * maxlen)))
    #    which would be faster if you need an iterable, not list

Vì vậy, trong trường hợp của chủ đề, việc sử dụng là:

string = 'Baboons love bananas'
parts = 5
splitlen = -(-len(string) // parts) # is alternative to math.ceil(len/parts)

first_method = split_bylen(string, splitlen)
#Result :['Babo', 'ons ', 'love', ' ban', 'anas']

second_method = split_bylen_any(string, splitlen, constructor=''.join)
#Result :['Babo', 'ons ', 'love', ' ban', 'anas']

Nội dung

  • Giới thiệu
  • Đoạn mã mẫu
  • Ví dụ 1: Chia chuỗi thành các khối
  • Ví dụ 2: Chuỗi phân chia theo chiều dài
  • Ví dụ 3: Chia chuỗi phân chia với độ dài 0 chunk
  • Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp
  • Bản tóm tắt

Để chia một chuỗi thành các khối có độ dài cụ thể, hãy sử dụng danh sách hiểu với chuỗi. Tất cả các khối sẽ được trả lại dưới dạng một mảng.

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để chia danh sách thành các khối có độ dài cụ thể.

Trong hướng dẫn này, chúng ta sẽ học cách chia một chuỗi thành các khối độ dài cụ thể, với sự trợ giúp của các chương trình Python ví dụ chi tiết.

Đoạn mã mẫu

Ví dụ 1: Chia chuỗi thành các khối

n = 3 # chunk length
chunks = [str[i:i+n] for i in range(0, len(str), n)]

Ví dụ 2: Chuỗi phân chia theo chiều dài

Ví dụ 3: Chia chuỗi phân chia với độ dài 0 chunk

Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp

str = 'CarBadBoxNumKeyValRayCppSan'

n = 3
chunks = [str[i:i+n] for i in range(0, len(str), n)]
print(chunks)

Bản tóm tắt

Để chia một chuỗi thành các khối có độ dài cụ thể, hãy sử dụng danh sách hiểu với chuỗi. Tất cả các khối sẽ được trả lại dưới dạng một mảng.

['Car', 'Bad', 'Box', 'Num', 'Key', 'Val', 'Ray', 'Cpp', 'San']

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để chia danh sách thành các khối có độ dài cụ thể.3. You can try with different length and different string values.

Ví dụ 2: Chuỗi phân chia theo chiều dài

Ví dụ 3: Chia chuỗi phân chia với độ dài 0 chunk4. Also, we have taken a string such that its length is not exactly divisible by chunk length. In that case, the last chunk contains characters whose count is less than the chunk size we provided.

Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp

str = 'Welcome to Python Examples'

n = 4
chunks = [str[i:i+n] for i in range(0, len(str), n)]
print(chunks)

Bản tóm tắt

Để chia một chuỗi thành các khối có độ dài cụ thể, hãy sử dụng danh sách hiểu với chuỗi. Tất cả các khối sẽ được trả lại dưới dạng một mảng.

['Welc', 'ome ', 'to P', 'ytho', 'n Ex', 'ampl', 'es']

Ví dụ 3: Chia chuỗi phân chia với độ dài 0 chunk

Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp

Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp

str = 'Welcome to Python Examples'

#chunk size
n = 0

chunks = [str[i:i+n] for i in range(0, len(str), n)]
print(chunks)

Bản tóm tắt

Để chia một chuỗi thành các khối có độ dài cụ thể, hãy sử dụng danh sách hiểu với chuỗi. Tất cả các khối sẽ được trả lại dưới dạng một mảng.

Traceback (most recent call last):
  File "example1.py", line 4, in <module>
    chunks = [str[i:i+n] for i in range(0, len(str), n)]
ValueError: range() arg 3 must not be zero

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để chia danh sách thành các khối có độ dài cụ thể.

Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp

Bản tóm tắt

Ví dụ 4: Chia chuỗi thành các khối bằng cách sử dụng trong khi vòng lặp

str = 'Welcome to Python Examples'
n = 5

chunks = []

i = 0
while i < len(str):
    if i+n < len(str):
        chunks.append(str[i:i+n])
    else:
        chunks.append(str[i:len(str)])
    i += n
print(chunks)

Bản tóm tắt

Để chia một chuỗi thành các khối có độ dài cụ thể, hãy sử dụng danh sách hiểu với chuỗi. Tất cả các khối sẽ được trả lại dưới dạng một mảng.

string = 'Baboons love bananas'
parts = 5
splitlen = -(-len(string) // parts) # is alternative to math.ceil(len/parts)

first_method = split_bylen(string, splitlen)
#Result :['Babo', 'ons ', 'love', ' ban', 'anas']

second_method = split_bylen_any(string, splitlen, constructor=''.join)
#Result :['Babo', 'ons ', 'love', ' ban', 'anas']
0

Bản tóm tắt

Để chia một chuỗi thành các khối có độ dài cụ thể, hãy sử dụng danh sách hiểu với chuỗi. Tất cả các khối sẽ được trả lại dưới dạng một mảng.

Hướng dẫn liên quan

  • Chuỗi phân chia Python thành danh sách các ký tự
  • Chuỗi phân tách Python theo không gian
  • Chuỗi phân tách Python theo dòng mới
  • Chuỗi phân tách Python bởi dấu phẩy
  • Làm thế nào để phân chia chuỗi bằng cách nhấn mạnh trong Python?