您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Python中怎么過濾字符串列表,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
使用另一個列表過濾字符串列表
本示例說明了如何在不使用任何方法的情況下過濾字符串列表中的數據。字符串列表在此使用另一個列表進行過濾。在此,聲明了兩個列表變量,名稱分別為list1和list2。使用list1的值過濾list2的值。該腳本會將list2的每個值的第一個單詞與list1的值進行匹配,并打印list1中不存在的那些值。
#coding=utf-8 # 聲明兩個列表變量 list1 = ['Python', 'PHP', 'Java', 'Bash'] list2 = ['JavaScript是客戶端腳本語言', 'PHP是服務器端腳本語言', 'Java是一種編程語言', 'Kotlin是一種靜態編程語言'] # 根據第一個列表過濾第二個列表 filter_data = [x for x in list2 if all(y not in x for y in list1)] # 在過濾前和過濾后打印列表數據 print("第一個列表的內容:", list1) print("第二個列表的內容:", list2) print("過濾后的第二個列表的內容:", filter_data)
運行腳本。在此,list1不包含單詞“Kotlin”。輸出將僅包含list2中的一個值,即 ['Kotlin是一種靜態編程語言']。
輸出如下:
第一個列表的內容: ['Python', 'PHP', 'Java', 'Bash']
第二個列表的內容: ['JavaScript是客戶端腳本語言', 'PHP是服務器端腳本語言', 'Java是一種編程語言', 'Kotlin是一種靜態編程語言']
過濾后的第二個列表的內容: ['Kotlin是一種靜態編程語言']
使用另一個列表和自定義函數過濾字符串列表
本示例說明如何使用另一個列表和自定義過濾器功能過濾字符串列表。該腳本包含兩個名為list1和list2的列表變量。自定義過濾器功能將找出兩個列表變量的公共值。
# 聲明兩個列表變量 list1 = ['100', '67', '39', '505', '122', '287', '399'] list2 = ['70', '100', '308', '415', '362', '230'] # 聲明一個函數來過濾第一個列表中的數據 def Filter(list1, list2): return [n for n in list1 if any(m in n for m in list2)] # 在過濾器之前和之后打印列表數據 print("list1的的內容:", list1) print("list2的的內容:", list2) print("過濾后的數據",Filter(list1, list2))
運行腳本。兩個列表變量中都存在100的值。運行腳本后,將生成以下輸出。
list1的的內容: ['100', '67', '39', '505', '122', '287', '399']
list2的的內容: ['70', '100', '308', '415', '362', '230']
過濾后的數據 ['100']
使用正則表達式過濾字符串列表
通過使用前兩個示例中的all()和any()方法來過濾列表。在此示例中,使用正則表達式從列表中過濾數據。正則表達式是一種模式,通過該模式可以搜索或匹配任何數據。Python中使用're'模塊在腳本中應用正則表達式。在此,使用主題代碼聲明列表。正則表達式用于過濾以“ CSE”開頭的主題代碼。正則表達式模式中使用'^'符號在文本的開頭進行搜索。
# 導入re模塊以使用正則表達式 import re # 聲明列表包含科目編號 sublist = ['IDC-108', 'OKY-309', 'IDC-709', 'PHP-102', 'MIO-801'] # 聲明過濾功能 def Filter(datalist): # 根據列表中的正則表達式搜索數據 return [val for val in datalist if re.search(r'^IDC', val)] # 打印過濾器數據 print(Filter(sublist))
運行腳本。子列表變量包含兩個以“IDC”開頭的值。運行腳本后,將顯示以下輸出。
['IDC-108', 'IDC-709']
使用lamda表達式過濾字符串列表
本示例說明了使用lamda表達式從字符串列表中過濾數據。在這里,名為search_word的列表變量用于從名為text的文本變量中過濾內容。通過使用split()方法,基于空間將文本內容轉換為名為text_word的列表。lamda表達式將忽略text_word中存在于search_word中的那些值,并通過添加空格將過濾后的值存儲在變量中。
# 聲明一個包含linuxidc_word中關鍵詞的列表 linuxidc_word = ["系統", "linuxidc", "Python", "Kotlin"] # 定義文本,從列表中搜索單詞 text = "Linux公社 linuxidc 是專業的 Linux 系統 門戶網站,實時發布 最新 Kotlin 資訊!" # 根據空格分割文本并將單詞存儲在列表中 texttext_word = text.split() # 使用lambda表達式過濾數據 filter_text = ' '.join((filter(lambda val: val not in linuxidc_word, text_word))) # 在過濾前和過濾后打印文本 print("\n過濾前的文本:\n", text) print("過濾后的文本:\n", filter_text)
運行腳本。運行腳本后,將顯示以下輸出。
過濾前的文本:
Linux公社 linuxidc 是專業的 Linux 系統 門戶網站,實時發布 最新 Kotlin 資訊!
過濾后的文本:
Linux公社 是專業的 Linux 門戶網站,實時發布 最新 資訊!
使用filter()方法過濾字符串列表
filter()方法接受兩個參數。第一個參數采用函數名稱或“ None”,第二個參數采用列表變量的名稱作為值。filter()方法如果返回true,則從列表中存儲這些數據,否則將丟棄該數據。在此,第一個參數值不指定任何值。所有不為false的值將從列表中檢索為已過濾數據。
#聲明混合數據列表 listData = ['linuxidc', 90, 9, 'com', 100, False, 22, True, '1'] # 使用None和列表調用filter()方法 filterfilteredData = filter(None, listData) #過濾數據后打印列表 print('過濾后的列表:') for val in filteredData: print(val)
運行腳本。該列表只包含一個false值,在過濾后的數據中將省略該false值。運行腳本后將出現以下輸出。
看完上述內容,你們對Python中怎么過濾字符串列表有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。