溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中怎么過濾字符串列表

發(fā)布時間:2021-07-05 17:43:18 來源:億速云 閱讀:199 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)Python中怎么過濾字符串列表,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

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

本示例說明了如何在不使用任何方法的情況下過濾字符串列表中的數(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)

運行腳本。在此,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))

運行腳本。兩個列表變量中都存在100的值。運行腳本后,將生成以下輸出。

list1的的內(nèi)容: ['100', '67', '39', '505', '122', '287', '399']

list2的的內(nèi)容: ['70', '100', '308', '415', '362', '230']

過濾后的數(shù)據(jù) ['100']

Python中怎么過濾字符串列表

使用正則表達(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))

運行腳本。子列表變量包含兩個以“IDC”開頭的值。運行腳本后,將顯示以下輸出。

['IDC-108', 'IDC-709']

Python中怎么過濾字符串列表

使用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)站,實時發(fā)布 最新 Kotlin  資訊!"  # 根據(jù)空格分割文本并將單詞存儲在列表中  texttext_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)

運行腳本。運行腳本后,將顯示以下輸出。

過濾前的文本:

Linux公社 linuxidc 是專業(yè)的 Linux 系統(tǒng) 門戶網(wǎng)站,實時發(fā)布 最新 Kotlin 資訊!

過濾后的文本:

Linux公社 是專業(yè)的 Linux 門戶網(wǎng)站,實時發(fā)布 最新 資訊!

Python中怎么過濾字符串列表

使用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()方法  filterfilteredData = filter(None,  listData)  #過濾數(shù)據(jù)后打印列表  print('過濾后的列表:')  for val in  filteredData:      print(val)

運行腳本。該列表只包含一個false值,在過濾后的數(shù)據(jù)中將省略該false值。運行腳本后將出現(xiàn)以下輸出。

Python中怎么過濾字符串列表

看完上述內(nèi)容,你們對Python中怎么過濾字符串列表有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI