国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Python 字符串拆分說(shuō)明

分鐘閱讀

字符串操作是 Python 的一項(xiàng)基本技能,了解如何拆分字符串是其中的一個(gè)關(guān)鍵方面。在本綜合指南中,我們將探討拆分字符串的各種方法和技術(shù),包括 and 函數(shù)、正則表達(dá)式 (regex) 和高級(jí)拆分技術(shù)。在本教程結(jié)束時(shí),您將深入了解如何在 Python 中處理字符串拆分。split()rsplit()

為什么要拆分字符串?

字符串拆分是根據(jù)特定條件將字符串分解為較小部分的過(guò)程。這對(duì)于各種任務(wù)非常有用,例如數(shù)據(jù)處理、文本分析和解析結(jié)構(gòu)化數(shù)據(jù)格式(如 CSV 或 JSON)。Python 提供了幾種方法和工具來(lái)輕松執(zhí)行字符串拆分。

拆分方法概述

Python 提供了幾種拆分字符串的技術(shù):

  • split():使用指定的分隔符(默認(rèn):空格)將字符串拆分為子字符串。
  • rsplit():從右端拆分字符串。
  • 正則表達(dá)式 (regex):提供強(qiáng)大的基于模式的拆分。
  • 高級(jí)技術(shù):針對(duì)特定拆分用例的自定義方法。

在本指南中,我們將深入探討每種技術(shù),并提供示例和用例以深入了解。

基本字符串拆分split()

按空格拆分

該方法是基于空格將字符串拆分為單詞的最常見(jiàn)方法。讓我們看一個(gè)例子。split()

st = 'Python is a versatile programming language.'words = st.split()print(words)

上面的代碼將給出以下結(jié)果。

['Python', 'is', 'a', 'versatile', 'programming', 'language.']

默認(rèn)情況下, 使用一個(gè)或多個(gè)空格字符分隔字符串。split()

按特定字符拆分

您可以通過(guò)將字符串作為參數(shù)發(fā)送到 split() 函數(shù)來(lái)按特定字符拆分字符串。讓我們嘗試實(shí)際地做到這一點(diǎn)。

csv_data = 'apple,banana,cherry,grape'fruits = csv_data.split(',')print(fruits)

運(yùn)行代碼后,它會(huì)給出以下輸出。

['apple', 'banana', 'cherry', 'grape']

這對(duì)于解析 CSV 文件和其他結(jié)構(gòu)化數(shù)據(jù)特別有用。

將 Python 字符串拆分為單詞

要將字符串拆分為單個(gè)單詞,請(qǐng)使用不帶參數(shù)的 Python。為了說(shuō)明這一點(diǎn),我們舉了一個(gè)簡(jiǎn)單的例子。split()

sentence = 'Python is a versatile programming language.'words = sentence.split()print(words)

當(dāng)您運(yùn)行此代碼時(shí),它將給出以下結(jié)果。

['Python', 'is', 'a', 'versatile', 'programming', 'language.']

這是處理自然語(yǔ)言處理 (NLP) 任務(wù)時(shí)的常見(jiàn)操作。

拆分為數(shù)字?jǐn)?shù)組

如果字符串包含由特定字符分隔的數(shù)字,則可以將其拆分并將子字符串轉(zhuǎn)換為數(shù)字?jǐn)?shù)組。按照以下示例清楚地理解它。

num_str_prime = '7, 13, 17, 19, 23'num_list = [int(n) for n in num_str_prime.split(',')]print(num_list)

您將在執(zhí)行時(shí)獲得以下輸出。

[7, 13, 17, 19, 23]

在這個(gè)例子中,我們首先用逗號(hào)分割字符串,然后調(diào)用列表推導(dǎo)式將子字符串轉(zhuǎn)換為整數(shù)。

高級(jí)字符串拆分rsplit()

從右邊拆分 Python 中的字符串

該方法從右端拆分字符串。讓我們借助示例進(jìn)行演示。rsplit()

filename = 'my-file-name.txt'parts = filename.rsplit('-', 1)# Split into at most 1 part from the rightprint(parts)

運(yùn)行上述 Python 代碼后,它會(huì)打印以下內(nèi)容。

['my-file', 'name.txt']

這在處理具有多次出現(xiàn)的分隔符的文件路徑或字符串時(shí)很有用,并且您希望從最后一個(gè)出現(xiàn)中分離出來(lái)。

使用參數(shù)maxsplit

我們可以用參數(shù)控制最大拆分次數(shù)。maxsplit

# Splitting a string into two parts from the rightpath = '/home/user/documents/python_guide.pdf'parts = path.rsplit('/', 1)print(parts)

這是上述代碼段的輸出。

['/home/user/documents', 'python_guide.pdf']

該參數(shù)將拆分次數(shù)限制為指定值。增加其值將按比例增加拆分次數(shù)。maxsplit

path = '/home/user/documents/python_guide.pdf'parts = path.rsplit('/', 2)print(parts)# ['/home/user', 'documents', 'python_guide.pdf']

基于正則表達(dá)式的字符串拆分

正則表達(dá)式(通常稱為正則表達(dá)式)是用于模式匹配和文本操作的強(qiáng)大工具。它們?cè)试S您定義復(fù)雜的模式并提取與這些模式匹配的子字符串。

要使用正則表達(dá)式,您可以導(dǎo)入模塊。它具有各種功能來(lái)支持Python中的字符串拆分。re

用re.split()

該函數(shù)根據(jù) Python 中的正則表達(dá)式模式拆分字符串:re.split()

import re text = 'Hello, world. Python programming is fun!'tokens = re.split(r'[,\s]+', text)print(tokens)

運(yùn)行后,代碼將打印以下結(jié)果。

['Hello', 'world.', 'Python', 'programming', 'is', 'fun!']

在此示例中,我們使用正則表達(dá)式模式 [,\s]+ 拆分字符串,該模式匹配一個(gè)或多個(gè)逗號(hào)或空格字符。

復(fù)雜模式拆分

正則表達(dá)式可以處理復(fù)雜的拆分方案。例如,用各種標(biāo)點(diǎn)符號(hào)拆分字符串:

import re # Splitting a string by punctuation markstext = 'Hello! World? Python, programming. Is this fun?'tokens = re.split(r'[!?,.\s]+', text)print(tokens)

上述程序的輸出如下。

['Hello', 'World', 'Python', 'programming', 'Is', 'this', 'fun', '']

此正則表達(dá)式模式匹配一個(gè)或多個(gè)出現(xiàn)的標(biāo)點(diǎn)符號(hào)或空格字符。[!?,.\s]+

使用“后瞻”和“展望”進(jìn)行拆分

正則表達(dá)式允許您使用 和 斷言執(zhí)行更復(fù)雜的拆分操作。例如,用空格分隔字符串,但排除雙引號(hào)內(nèi)的空格:lookbehindlookahead

import re# Splitting a string by spaces but not within double quotestext = 'Python 'is great' for 'string manipulation'.'tokens = re.split(r'(?<!')\s+(?!')', text)print(tokens)

上面的 Python 代碼使用模塊拆分字符串并打印以下內(nèi)容。re

['Python', ''is great'', 'for', ''string manipulation'.']

在此正則表達(dá)式模式中,是否定斷言,并且是負(fù)前瞻斷言,確保雙引號(hào)內(nèi)的空格不用于拆分。(?<!')lookbehind(?!')

高級(jí)字符串拆分技術(shù)

將長(zhǎng)字符串拆分為固定長(zhǎng)度的塊

有時(shí)您可能需要將長(zhǎng)字符串拆分為固定長(zhǎng)度的塊。在這種情況下,Python的for loop是你最好的朋友。讓我們?nèi)绾卫盟?/span>

 long_string = '1234567890ABCDEFGHIJ'chunk_size = 4chunks = [long_string[i:i + chunk_size] for i in range(0, len(long_string), chunk_size)]print(chunks)

運(yùn)行上述編碼片段后,它會(huì)打印以下內(nèi)容。

['1234', '5678', '90AB', 'CDEF', 'GHIJ']

在此示例中,我們使用列表推導(dǎo)來(lái)迭代字符串并將其拆分為指定長(zhǎng)度的塊。

使用多個(gè)分隔符進(jìn)行拆分

您可以通過(guò)將它們組合成正則表達(dá)式模式來(lái)使用多個(gè)分隔符拆分字符串:

import retext = 'Apples, Bananas; Cherries Apples Bananas'tokens = re.split(r'[ ,;]+', text)print(tokens)

輸出:

['Apples', 'Bananas', 'Cherries', 'Apples', 'Bananas']

在此示例中,正則表達(dá)式模式匹配一個(gè)或多個(gè)出現(xiàn)的空格、逗號(hào)或分號(hào)。[ ,;]+

剝離和拆分

有時(shí)您可能希望在拆分時(shí)從子字符串中刪除前導(dǎo)和尾隨空格。您可以通過(guò)在列表推導(dǎo)式中使用該方法來(lái)實(shí)現(xiàn)此目的:strip()

 data = '   1,   2,   3,   4,   5   'numbers = [int(num.strip()) for num in data.split(',')]print(numbers)

輸出:

[1, 2, 3, 4, 5]

本示例先去除每個(gè)子字符串的空格,然后再將其轉(zhuǎn)換為整數(shù)。

性能注意事項(xiàng)

選擇字符串拆分方法時(shí),請(qǐng)考慮以下事項(xiàng):

時(shí)空復(fù)雜度

  • split():O(n) 時(shí)間復(fù)雜度,其中 n 是字符串的長(zhǎng)度。它創(chuàng)建一個(gè)子字符串列表,因此空間復(fù)雜度為 O(n)。
  • rsplit():類似于 split(),但從右端拆分。
  • 基于正則表達(dá)式的拆分:時(shí)間復(fù)雜度取決于正則表達(dá)式模式的復(fù)雜性。簡(jiǎn)單模式可能具有線性時(shí)間復(fù)雜度,而復(fù)雜模式可能具有更高的時(shí)間復(fù)雜度。內(nèi)存使用情況取決于生成的子字符串的數(shù)量。

選擇正確的方法

  • 對(duì)于按空格或單個(gè)分隔符進(jìn)行基本拆分,請(qǐng)使用 或 。split()rsplit()
  • 對(duì)于復(fù)雜模式或多個(gè)分隔符,請(qǐng)考慮使用 。re.split()
  • 如果性能至關(guān)重要,并且要拆分大型字符串,請(qǐng)測(cè)試和分析代碼以選擇最有效的方法。

示例和用例

下面是一些在 Python 中拆分字符串的有用示例。準(zhǔn)備好你的Python IDE。

另請(qǐng)閱讀: 在 Python 中合并多個(gè) CSV 文件

解析 CSV 數(shù)據(jù)

字符串拆分最常見(jiàn)的用例之一是解析 CSV(逗號(hào)分隔值)數(shù)據(jù):

import csv# Parsing CSV datacsv_data = 'name,age,email\nRama,30,rama@ramayan.com\nSita,25,sita@ramayan.com'csv_reader = csv.reader(csv_data.splitlines())for row in csv_reader:    print(row)

輸出:

['name', 'age', 'email']['Rama', '30', 'rama@ramayan.com']['Sita', '25', 'sita@ramayan.com']

在這里,我們將CSV數(shù)據(jù)拆分為行,然后使用將其解析為行。csv.reader

標(biāo)記化文本

標(biāo)記化是自然語(yǔ)言處理 (NLP) 中的關(guān)鍵步驟。它涉及將文本拆分為單詞或標(biāo)記:

import nltk# Tokenizing text using NLTK (Natural Language Toolkit)# Please ensure that nlth module is installedtext = 'Tokenization is an important NLP task.'tokens = nltk.word_tokenize(text)print(tokens)

Python 的函數(shù)按以下方式拆分字符串。nltk tokenize

['Tokenization', 'is', 'an', 'important', 'NLP', 'task', '.']

在此示例中,我們使用 NLTK 庫(kù)進(jìn)行標(biāo)記化,這比處理自然語(yǔ)言文本的簡(jiǎn)單字符串拆分更可靠。

從文本中提取網(wǎng)址

在處理網(wǎng)頁(yè)抓取或文本分析時(shí),從文本塊中提取 URL 是一項(xiàng)常見(jiàn)任務(wù):

import re text = 'Visit our website at https://www.ramayan.com. For more info, go to http://ramayan.org.'urls = re.findall(r'https?://\S+', text)print(urls)

執(zhí)行后,您將獲得以下輸出。

['https://www.ramayan.com.', 'http://ramayan.org.']

在此示例中,正則表達(dá)式模式與 HTTP 或 HTTPS URL 匹配。https?://\S+

另請(qǐng)參閱:Python 中的多行字符串

拆分多行文本

將多行文本拆分為段落或句子對(duì)于文本處理任務(wù)非常有用。檢查以下示例。

 text = '''Paragraph 1: This is the first paragraph.Paragraph 2: This is the second paragraph.Paragraph 3: And this is the third paragraph.'''paragraphs = text.split('\n\n')  # Assuming double line breaks between paragraphsprint(paragraphs)

上面的 Python 程序打印以下內(nèi)容。

['Paragraph 1: This is the first paragraph.', 'Paragraph 2: This is the second paragraph.', 'Paragraph 3: And this is the third paragraph.']

在此示例中,我們通過(guò)檢測(cè)雙換行符 () 將文本拆分為段落。\n\n

結(jié)論

在 Python 中拆分字符串的各種技術(shù),從基本方法(如)到使用正則表達(dá)式和自定義拆分方案的更高級(jí)技術(shù)。您還探索了實(shí)際應(yīng)用的示例和用例。split()rsplit()

當(dāng)您處理不同的 Python 項(xiàng)目時(shí),您會(huì)遇到各種字符串拆分挑戰(zhàn)。您在本指南中獲得的知識(shí)將使您能夠自信地應(yīng)對(duì)這些挑戰(zhàn)并操作文本數(shù)據(jù)。

請(qǐng)記住根據(jù)任務(wù)的特定要求選擇正確的拆分方法,并在處理大型數(shù)據(jù)集時(shí)考慮性能影響。

字符串拆分是任何 Python 程序員的基本技能,掌握它為項(xiàng)目中的數(shù)據(jù)處理和文本操作開(kāi)辟了無(wú)數(shù)的可能性。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
將逗號(hào)分隔的字符串轉(zhuǎn)換為Python中的列表
(ok)Python3中通過(guò)多個(gè)字符分割(split)字符串的方法
python代碼運(yùn)行速度有點(diǎn)慢 ? 教你使用多線程速度飛升
示例詳解VBA的Split函數(shù)
Python中常用的字符串方法示例
Python字符串:替換,連接,拆分,反轉(zhuǎn),大寫(xiě)和小寫(xiě)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服