簡體   English   中英

檢查字符串是否在python中包含一個或多個列表值

[英]Check if a string contains one or more of list values in python

我有一個列表和一個字符串如下。

mylist = ["tim tam", "yogurt", "strawberry"]
mystring = "I love to eat tim tam"

現在,我要檢查mystringmylist是否包含一個或多個單詞。 如果包含flag變量,則變量應為true,否則為false。

我當前的代碼如下。

if mylist in mystring:
    flag = 1
else:
    flag = 0

但是,我收到錯誤TypeError: argument of type 'method' is not iterable 不知道為什么會發生。 請幫我。

您可以在any字符串中使用生成器表達式來將每個子字符串與原始字符串進行對照

>>> flag = any(i in mystring for i in mylist)
>>> flag
True

如果您想要一個int而不是bool ,可以將以上內容修改為

>>> flag = int(any(i in mystring for i in mylist))
>>> flag
1

您可以使用str.contains-或lambda函數進行過濾(我將其用於DataFrame)。

df=df.str.contains("keyword1|keyword2|keyword3", na=False)]

要么

ddf[df.apply(lambda r: r.str.contains('keyword1|keyword2|keyword3', case=False).any(), axis=1)] 

例:

mylist = 'tim tam|yogurt|strawberry'   
df = pd.DataFrame(df[df[[0,1,2,3...]].apply(lambda r: r.str.contains(mylist, case=False).any(), axis=1)])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM