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方法總是根據換行符進行分割。我們可以根據想要進行的分割型別使用本文中解釋的任何方法。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP