Python程式將字串分割成多個子字串


在Python中,我們可以使用split()方法將字串分割成子字串。split()方法是Python內建的字串方法之一,它根據指定的分割符將字串分割成子字串列表。在本文中,我們將學習如何透過示例來將字串分割成子字串。

將字串分割成子字串

方法一:使用split()方法

split()方法是Python中字串的內建方法,它根據指定的分割符將字串分割成子字串列表。分割符可以是任何字元或字串,用於分隔子字串。split()方法接受一個引數,即分割符。如果沒有指定分割符,它將把字串分割成單個字元。

示例:分別基於空格和逗號分隔符進行分割

在下面的示例中,我們將使用空格分隔符分割字串。我們使用split()方法並傳入空格分隔符,以便根據空格分割字串。

string = "Hello World"
substrings = string.split()
print(substrings)

string1 = "apple,banana,orange"
substrings = string1.split(",")
print(substrings)

輸出

['Hello', 'World']
['apple', 'banana', 'orange']

示例:使用正則表示式分割

在下面的示例中,我們使用了正則表示式模組中的split()函式,使用短橫線和空格分隔符將字串“23-456-7890”分割成三個子字串。

import re

string = "123-456-7890"
substrings = re.split("-|\s", string)
print(substrings)

輸出

['123', '456', '7890']

方法二:使用列表推導式

列表推導式是Python中建立列表的一種簡潔方法。它允許你基於現有列表或其他可迭代物件建立一個新列表,同時應用過濾條件並對可迭代物件的元素進行轉換。

語法

new_list = [expression for item in iterable if condition]

其中,“表示式”是對可迭代物件每個元素要執行的轉換或操作,“專案”是正在處理的當前元素,“可迭代物件”是元素的來源,“條件”是一個可選的過濾條件,用於確定是否將元素包含在結果列表中。

示例

在下面的示例中,我們從一個名為“sentence”的字串開始,該字串包含一系列用空格分隔的單詞。我們使用split()方法將字串分割成單詞列表,然後使用列表推導式建立一個名為“words”的新列表,其中包含原始字串中的每個單詞。

sentence = "The quick brown fox jumps over the lazy dog"
words = [word for word in sentence.split()]
print(words)

輸出

['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

方法三:使用partition()方法

partition()方法是Python中字串的內建方法,它根據指定的分割符將字串分割成三個部分。它返回一個元組,其中包含分割符之前的字串左部分、分割符本身以及分割符之後的字串右部分。如果在字串中找不到分割符,則該方法返回一個元組,其中包含原始字串,後跟兩個空字串。

語法

string.partition(delimiter)

這裡,字串是要分割的字串,而分隔符是根據它要進行分割的字串的分隔符。

示例

在下面的示例中,我們使用partition()方法根據空格分隔符將字串“Hello World!”分割成三個部分。結果元組包含左部分“Hello”、分隔符“ ”和右部分“World!”。

string = "Hello World!"
parts = string.partition(" ")
print(parts)

輸出

('Hello', ' ', 'World!')

方法四:使用splitlines()函式

splitlines()方法是Python中字串的內建方法,它根據換行符“\n”將字串分割成行列表。如果字串不包含任何換行符,則它返回一個列表,其中包含原始字串作為其唯一元素。

語法

string.splitlines()

這裡,splitlines()不接受任何引數,總是根據換行符進行分割。

示例

在下面的示例中,我們使用splitlines()方法將字串“Line 1\nLine 2\nLine 3”分割成行列表。結果列表包含三個元素,原始字串中的每一行一個。

string = "Line 1\nLine 2\nLine 3"
lines = string.splitlines()
print(lines)

輸出

['Line 1', 'Line 2', 'Line 3']

方法五:使用re.findall()方法

re.findall()方法是Python中re模組中的一個函式,它搜尋字串中指定正則表示式模式的所有出現,並返回所有匹配項的列表。正則表示式模式可以包含表示不同型別字元或序列的各種字元,允許進行復雜的模式匹配和提取字串的特定部分。

語法

re.findall(regular_expression, string)

這裡,re.findall()方法接受一個正則表示式,用於查詢從也傳遞給findall()函式的字串中匹配單詞的出現。

示例

在下面的示例中,我們使用re.findall()方法搜尋字串中\b\w{5}\b正則表示式模式的所有出現。此模式匹配任何正好由五個單詞字元(字母、數字或下劃線)組成的序列,該序列由單詞邊界(即單詞的開頭或結尾)包圍。re.findall()方法返回在字串中找到的所有匹配項的列表。

import re

string = "The quick brown fox jumps over the lazy dog"
matches = re.findall(r"\b\w{5}\b", string)
print(matches)

輸出

['quick', 'brown', 'jumps']

結論

在本文中,我們討論瞭如何使用split()函式、列表推導式、partition方法、splitlines方法和re.findall()方法在Python中將字串分割成多個子字串。split()函式接受分隔符作為引數。然後根據該分隔符分割字串。splitlines方法總是根據換行符進行分割。我們可以根據想要進行的分割型別使用本文中解釋的任何方法。

更新於:2023年7月11日

瀏覽量:135

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.