如何在Python中過濾字符串列表

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=Python使用列表數據類型在順序索引中存儲多個數據。它的工做方式相似於其餘編程語言的數字數組。filter()方法是Python的一種很是有用的方法。可使用filter()方法從Python中的任何字符串、列表或字典中過濾一個或多個數值。它根據任何特定條件過濾數據。當條件返回true時,它將存儲數據,而返回false時將丟棄數據。本文經過使用不一樣的示例展現瞭如何在Python中過濾列表中的字符串數據。您必須使用Python 3+來測試本文的示例。linux

Python使用列表數據類型在順序索引中存儲多個數據。它的工做方式相似於其餘編程語言的數字數組。filter()方法是Python的一種很是有用的方法。可使用filter()方法從Python中的任何字符串、列表或字典中過濾一個或多個數值。它根據任何特定條件過濾數據。當條件返回true時,它將存儲數據,而返回false時將丟棄數據。本文經過使用不一樣的示例展現瞭如何在Python中過濾列表中的字符串數據。您必須使用Python 3+來測試本文的示例。正則表達式

使用另外一個列表過濾字符串列表

本示例說明了如何在不使用任何方法的狀況下過濾字符串列表中的數據。 字符串列表在此使用另外一個列表進行過濾。 在此,聲明瞭兩個列表變量,名稱分別爲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中過濾字符串列表服務器

輸出以下:

第一個列表的內容: ['Python', 'PHP', 'Java', 'Bash']
第二個列表的內容: ['JavaScript是客戶端腳本語言', 'PHP是服務器端腳本語言', 'Java是一種編程語言', 'Kotlin是一種靜態編程語言']
過濾後的第二個列表的內容: ['Kotlin是一種靜態編程語言']編程語言

使用另外一個列表和自定義函數過濾字符串列表

本示例說明如何使用另外一個列表和自定義過濾器功能過濾字符串列表。 該腳本包含兩個名爲list1和list2的列表變量。 自定義過濾器功能將找出兩個列表變量的公共值。ide

# 聲明兩個列表變量
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']測試

如何在Python中過濾字符串列表網站

使用正則表達式過濾字符串列表

經過使用前兩個示例中的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']

如何在Python中過濾字符串列表

使用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  資訊!"

# 根據空格分割文本並將單詞存儲在列表中
text_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 門戶網站,實時發佈 最新 資訊!

如何在Python中過濾字符串列表

使用filter()方法過濾字符串列表

filter()方法接受兩個參數。 第一個參數採用函數名稱或「 None」,第二個參數採用列表變量的名稱做爲值。 filter()方法若是返回true,則從列表中存儲這些數據,不然將丟棄該數據。 在此,第一個參數值不指定任何值。 全部不爲false的值將從列表中檢索爲已過濾數據。

#聲明混合數據列表
listData = ['linuxidc', 90, 9, 'com', 100, False, 22, True,  '1']

# 使用None和列表調用filter()方法
filteredData = filter(None,  listData)

#過濾數據後打印列表
print('過濾後的列表:')
for val in  filteredData:
    print(val)

運行腳本。該列表只包含一個false值,在過濾後的數據中將省略該false值。運行腳本後將出現如下輸出。

如何在Python中過濾字符串列表

總結:

當您須要從列表中搜索和檢索特定值時, 過濾很是有用。我但願上面的例子能幫助讀者理解從字符串列表中過濾數據的方法。

相關文章
相關標籤/搜索