Hướng dẫn split once python - chia một lần trăn

Trong mã dưới đây, có một câu trả lời đơn giản, rất hiệu quả và được kiểm tra tốt cho câu hỏi này. Mã này có ý kiến ​​giải thích mọi thứ trong đó.

Tôi hứa nó không đáng sợ như vẻ ngoài của nó - thực sự chỉ có 13 dòng mã! Phần còn lại là tất cả các bình luận, tài liệu và xác nhận

def split_including_delimiters[input: str, delimiter: str]:
    """
    Splits an input string, while including the delimiters in the output
    
    Unlike str.split, we can use an empty string as a delimiter
    Unlike str.split, the output will not have any extra empty strings
    Conequently, len[''.split[delimiter]]== 0 for all delimiters,
       whereas len[input.split[delimiter]]>0 for all inputs and delimiters
    
    INPUTS:
        input: Can be any string
        delimiter: Can be any string

    EXAMPLES:
         >>> split_and_keep_delimiter['Hello World  ! ',' ']
        ans = ['Hello ', 'World ', ' ', '! ', ' ']
         >>> split_and_keep_delimiter["Hello**World**!***", "**"]
        ans = ['Hello', '**', 'World', '**', '!', '**', '*']
    EXAMPLES:
        assert split_and_keep_delimiter['-xx-xx-','xx'] == ['-', 'xx', '-', 'xx', '-'] # length 5
        assert split_and_keep_delimiter['xx-xx-' ,'xx'] == ['xx', '-', 'xx', '-']      # length 4
        assert split_and_keep_delimiter['-xx-xx' ,'xx'] == ['-', 'xx', '-', 'xx']      # length 4
        assert split_and_keep_delimiter['xx-xx'  ,'xx'] == ['xx', '-', 'xx']           # length 3
        assert split_and_keep_delimiter['xxxx'   ,'xx'] == ['xx', 'xx']                # length 2
        assert split_and_keep_delimiter['xxx'    ,'xx'] == ['xx', 'x']                 # length 2
        assert split_and_keep_delimiter['x'      ,'xx'] == ['x']                       # length 1
        assert split_and_keep_delimiter[''       ,'xx'] == []                          # length 0
        assert split_and_keep_delimiter['aaa'    ,'xx'] == ['aaa']                     # length 1
        assert split_and_keep_delimiter['aa'     ,'xx'] == ['aa']                      # length 1
        assert split_and_keep_delimiter['a'      ,'xx'] == ['a']                       # length 1
        assert split_and_keep_delimiter[''       ,''  ] == []                          # length 0
        assert split_and_keep_delimiter['a'      ,''  ] == ['a']                       # length 1
        assert split_and_keep_delimiter['aa'     ,''  ] == ['a', '', 'a']              # length 3
        assert split_and_keep_delimiter['aaa'    ,''  ] == ['a', '', 'a', '', 'a']     # length 5
    """

    # Input assertions
    assert isinstance[input,str], "input must be a string"
    assert isinstance[delimiter,str], "delimiter must be a string"

    if delimiter:
        # These tokens do not include the delimiter, but are computed quickly
        tokens = input.split[delimiter]
    else:
        # Edge case: if the delimiter is the empty string, split between the characters
        tokens = list[input]
        
    # The following assertions are always true for any string input and delimiter
    # For speed's sake, we disable this assertion
    # assert delimiter.join[tokens] == input

    output = tokens[:1]

    for token in tokens[1:]:
        output.append[delimiter]
        if token:
            output.append[token]
    
    # Don't let the first element be an empty string
    if output[:1]==['']:
        del output[0]
        
    # The only case where we should have an empty string in the output is if it is our delimiter
    # For speed's sake, we disable this assertion
    # assert delimiter=='' or '' not in output
        
    # The resulting strings should be combinable back into the original string
    # For speed's sake, we disable this assertion
    # assert ''.join[output] == input

    return output

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về phương thức phân chia chuỗi python [] với sự trợ giúp của các ví dụ.

Phương thức split[] phá vỡ một chuỗi ở dấu phân cách được chỉ định và trả về một danh sách các chuỗi.

Thí dụ

text = 'Python is a fun programming language'

# split the text from space print[text.split[' ']]

# Output: ['Python', 'is', 'a', 'fun', 'programming', 'language']

Cú pháp của Chuỗi chia []

Cú pháp của split[] là:

str.split[separator, maxsplit]

Chia [] tham số

Phương thức split[] mất tối đa 2 tham số:

  • phân tách [tùy chọn]- DELIMITER tại đó xảy ra sự chia tách. Nếu không được cung cấp, chuỗi được chia tại khoảng trắng. [optional]- Delimiter at which splits occur. If not provided, the string is splitted at whitespaces.
  • MaxSplit [Tùy chọn] - Số lượng phân tách tối đa. Nếu không được cung cấp, không có giới hạn về số lượng chia tách. [optional] - Maximum number of splits. If not provided, there is no limit on the number of splits.

chia [] giá trị trả về

Phương thức split[] trả về một danh sách các chuỗi.

Ví dụ 1: Làm thế nào chia [] hoạt động trong Python?

text= 'Love thy neighbor'

# splits at space

print[text.split[]]

grocery = 'Milk, Chicken, Bread' # splits at ','

print[grocery.split[', ']]

# Splits at ':' print[grocery.split[':']]

Đầu ra

['Love', 'thy', 'neighbor']
['Milk', 'Chicken', 'Bread']
['Milk, Chicken, Bread']

Ví dụ 2: Làm thế nào chia [] hoạt động khi MaxSplit được chỉ định?

grocery = 'Milk, Chicken, Bread, Butter'

# maxsplit: 2

print[grocery.split[', ', 2]]

# maxsplit: 1 print[grocery.split[', ', 1]] # maxsplit: 5

print[grocery.split[', ', 5]]

# maxsplit: 0 print[grocery.split[', ', 0]]

Đầu ra

['Milk', 'Chicken', 'Bread, Butter']
['Milk', 'Chicken, Bread, Butter']
['Milk', 'Chicken', 'Bread', 'Butter']
['Milk, Chicken, Bread, Butter']

Ví dụ 2: Làm thế nào chia [] hoạt động khi MaxSplit được chỉ định?

Bài Viết Liên Quan

Chủ Đề