Python中過濾字符串列表的方法
Python使用列表數(shù)據(jù)類型在順序索引中存儲多個數(shù)據(jù)。它的工作方式類似于其他編程語言的數(shù)字?jǐn)?shù)組。filter()方法是Python的一種非常有用的方法。可以使用filter()方法從Python中的任何字符串、列表或字典中過濾一個或多個數(shù)值。它根據(jù)任何特定條件過濾數(shù)據(jù)。當(dāng)條件返回true時,它將存儲數(shù)據(jù),而返回false時將丟棄數(shù)據(jù)。本文通過使用不同的示例展示了如何在Python中過濾列表中的字符串?dāng)?shù)據(jù)。您必須使用Python 3+來測試本文的示例。
使用另一個列表過濾字符串列表
本示例說明了如何在不使用任何方法的情況下過濾字符串列表中的數(shù)據(jù)。 字符串列表在此使用另一個列表進(jìn)行過濾。 在此,聲明了兩個列表變量,名稱分別為list1和list2。 使用list1的值過濾list2的值。 該腳本會將list2的每個值的第一個單詞與list1的值進(jìn)行匹配,并打印list1中不存在的那些值。
#coding=utf-8
# 聲明兩個列表變量
list1 = ['Python', 'PHP', 'Java', 'Bash']
list2 = ['JavaScript是客戶端腳本語言',
'PHP是服務(wù)器端腳本語言',
'Java是一種編程語言',
'Kotlin是一種靜態(tài)編程語言']
# 根據(jù)第一個列表過濾第二個列表
filter_data = [x for x in list2 if
all(y not in x for y in list1)]
# 在過濾前和過濾后打印列表數(shù)據(jù)
print("第一個列表的內(nèi)容:", list1)
print("第二個列表的內(nèi)容:", list2)
print("過濾后的第二個列表的內(nèi)容:", filter_data)
運(yùn)行腳本。 在此,list1不包含單詞“Kotlin”。 輸出將僅包含list2中的一個值,即 ['Kotlin是一種靜態(tài)編程語言']。
如何在Python中過濾字符串列表
輸出如下:
第一個列表的內(nèi)容: ['Python', 'PHP', 'Java', 'Bash']
第二個列表的內(nèi)容: ['JavaScript是客戶端腳本語言', 'PHP是服務(wù)器端腳本語言', 'Java是一種編程語言', 'Kotlin是一種靜態(tài)編程語言']
過濾后的第二個列表的內(nèi)容: ['Kotlin是一種靜態(tài)編程語言']
使用另一個列表和自定義函數(shù)過濾字符串列表
本示例說明如何使用另一個列表和自定義過濾器功能過濾字符串列表。 該腳本包含兩個名為list1和list2的列表變量。 自定義過濾器功能將找出兩個列表變量的公共值。
# 聲明兩個列表變量
list1 = ['100', '67', '39', '505', '122', '287', '399']
list2 = ['70', '100', '308', '415', '362', '230']
# 聲明一個函數(shù)來過濾第一個列表中的數(shù)據(jù)
def Filter(list1, list2):
return [n for n in list1 if
any(m in n for m in list2)]
# 在過濾器之前和之后打印列表數(shù)據(jù)
print("list1的的內(nèi)容:", list1)
print("list2的的內(nèi)容:", list2)
print("過濾后的數(shù)據(jù)",Filter(list1, list2))
運(yùn)行腳本。 兩個列表變量中都存在100的值。 運(yùn)行腳本后,將生成以下輸出。
list1的的內(nèi)容: ['100', '67', '39', '505', '122', '287', '399']
list2的的內(nèi)容: ['70', '100', '308', '415', '362', '230']
過濾后的數(shù)據(jù) ['100']
使用正則表達(dá)式過濾字符串列表
通過使用前兩個示例中的all()和any()方法來過濾列表。 在此示例中,使用正則表達(dá)式從列表中過濾數(shù)據(jù)。 正則表達(dá)式是一種模式,通過該模式可以搜索或匹配任何數(shù)據(jù)。 Python中使用're'模塊在腳本中應(yīng)用正則表達(dá)式。 在此,使用主題代碼聲明列表。 正則表達(dá)式用于過濾以“ CSE”開頭的主題代碼。 正則表達(dá)式模式中使用'^'符號在文本的開頭進(jìn)行搜索。
# 導(dǎo)入re模塊以使用正則表達(dá)式
import re
# 聲明列表包含科目編號
sublist = ['IDC-108', 'OKY-309', 'IDC-709', 'PHP-102', 'MIO-801']
# 聲明過濾功能
def Filter(datalist):
# 根據(jù)列表中的正則表達(dá)式搜索數(shù)據(jù)
return [val for val in datalist
if re.search(r'^IDC', val)]
# 打印過濾器數(shù)據(jù)
print(Filter(sublist))
運(yùn)行腳本。 子列表變量包含兩個以“IDC”開頭的值。 運(yùn)行腳本后,將顯示以下輸出。
['IDC-108', 'IDC-709']
使用lamda表達(dá)式過濾字符串列表
本示例說明了使用lamda表達(dá)式從字符串列表中過濾數(shù)據(jù)。 在這里,名為search_word的列表變量用于從名為text的文本變量中過濾內(nèi)容。 通過使用split()方法,基于空間將文本內(nèi)容轉(zhuǎn)換為名為text_word的列表。 lamda表達(dá)式將忽略text_word中存在于search_word中的那些值,并通過添加空格將過濾后的值存儲在變量中。
# 聲明一個包含linuxidc_word中關(guān)鍵詞的列表
linuxidc_word = ["系統(tǒng)", "linuxidc", "Python", "Kotlin"]
# 定義文本,從列表中搜索單詞
text = "Linux公社 linuxidc 是專業(yè)的 Linux 系統(tǒng) 門戶網(wǎng)站,實(shí)時發(fā)布 最新 Kotlin 資訊!"
# 根據(jù)空格分割文本并將單詞存儲在列表中
text_word = text.split()
# 使用lambda表達(dá)式過濾數(shù)據(jù)
filter_text = ' '.join((filter(lambda val: val not in linuxidc_word, text_word)))
# 在過濾前和過濾后打印文本
print("\n過濾前的文本:\n", text)
print("過濾后的文本:\n", filter_text)
運(yùn)行腳本。 運(yùn)行腳本后,將顯示以下輸出。
過濾前的文本:
Linux公社 linuxidc 是專業(yè)的 Linux 系統(tǒng) 門戶網(wǎng)站,實(shí)時發(fā)布 最新 Kotlin 資訊!
過濾后的文本:
Linux公社 是專業(yè)的 Linux 門戶網(wǎng)站,實(shí)時發(fā)布 最新 資訊!
使用filter()方法過濾字符串列表
filter()方法接受兩個參數(shù)。 第一個參數(shù)采用函數(shù)名稱或“ None”,第二個參數(shù)采用列表變量的名稱作為值。 filter()方法如果返回true,則從列表中存儲這些數(shù)據(jù),否則將丟棄該數(shù)據(jù)。 在此,第一個參數(shù)值不指定任何值。 所有不為false的值將從列表中檢索為已過濾數(shù)據(jù)。
#聲明混合數(shù)據(jù)列表
listData = ['linuxidc', 90, 9, 'com', 100, False, 22, True, '1']
# 使用None和列表調(diào)用filter()方法
filteredData = filter(None, listData)
#過濾數(shù)據(jù)后打印列表
print('過濾后的列表:')
for val in filteredData:
print(val)
運(yùn)行腳本。該列表只包含一個false值,在過濾后的數(shù)據(jù)中將省略該false值。
總結(jié):
當(dāng)您需要從列表中搜索和檢索特定值時, 過濾非常有用。我希望上面的例子能幫助讀者理解從字符串列表中過濾數(shù)據(jù)的方法。
作者: wyh草樣
以上就是Python中過濾字符串列表的方法的詳細(xì)內(nèi)容,更多關(guān)于Python中過濾字符串列表的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python selenium如何打包靜態(tài)網(wǎng)頁并下載
這篇文章主要介紹了Python selenium如何打包靜態(tài)網(wǎng)頁并下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Pycharm中import?torch報(bào)錯,python中import?torch不報(bào)錯的解決
這篇文章主要介紹了Pycharm中import?torch報(bào)錯,python中import?torch不報(bào)錯的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
pycharm配置pyqt5-tools開發(fā)環(huán)境的方法步驟
這篇文章主要介紹了pycharm配置pyqt5-tools開發(fā)環(huán)境的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
關(guān)于python的縮進(jìn)規(guī)則的知識點(diǎn)詳解
在本篇文章里小編給大家整理了關(guān)于python的縮進(jìn)規(guī)則的知識點(diǎn)詳解,有興趣的朋友們可以學(xué)習(xí)下。2020-06-06
Python簡單連接MongoDB數(shù)據(jù)庫的方法
這篇文章主要介紹了Python簡單連接MongoDB數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式分析了Python使用pymongo模塊操作MongoDB數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-03-03

