第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在元組列表中查找部分字符串匹配

如何在元組列表中查找部分字符串匹配

我有一個元組列表mylist = [(100, 'Unknown'), ('Unknown Player', 'BBB'), (20, 90), (40, 'DDD')]我想返回包含該單詞的元組列表Unknown我試過:matches = [x for x in mylist if 'Unknown' in x]但這會返回:(100,'Unknown)我想返回:[(100, 'Unknown'), ('Unknown Player', 'BBB')]
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

您想要在元組的兩個元素中搜索“未知”,而不僅僅是整個元組。

matches = [x for x in mylist if (isinstance(x[0], str) and 'Unknown' in x[0]) or (isinstance(x[1], str) and 'Unknown' in x[1])]

您可以將其分成一個函數(shù):

def contains_unknown(a):
    return isinstance(a, str) and 'Unknown' in a

matches = [x for x in mylist if contains_unknown(x[0]) or contains_unknown(x[1])]

對于任意長度的元組,您可以使用內(nèi)置迭代器函數(shù)來編寫

matches = [x for x in mylist if any(map(contains_unknown, x))]

甚至

matches = filter(lambda x: any(map(contains_unknown, x)), mylist)

當然這僅適用于長度為 2 的元組。

其工作方式:map應(yīng)用于contains_unknown中的每個元素x,返回一個可迭代的布爾值。any然后返回這些布爾值中的任何一個是否為 True。如果您選擇使用filter,則僅過濾 mylist 中滿足該條件的元素。請注意,它filter返回一個filter對象,該對象是一個可迭代對象,但不是一個列表。您可能想申請list它以將其用作一個。


查看完整回答
反對 回復 2023-10-18
?
繁星點點滴滴

TA貢獻1803條經(jīng)驗 獲得超3個贊

嘗試這個:

matches = [x for x in mylist if any(['Unknown' in str(y) for y in x])]

print(matches)

[(100, 'Unknown'), ('Unknown Player', 'BBB')]


查看完整回答
反對 回復 2023-10-18
  • 2 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號