我正在嘗試迭代我的“發送”列表。如果我的其他列表“食物”包含列表“發送”中的元素,我想將列表“食物”中的值附加到“結果”,如果沒有,則不附加任何元素。到目前為止我所擁有的是:result = []sents = ['I love pizza. its my favorite', 'lets go get a sub', 'I just want a big fat steak']food = ['sub', 'pizza', 'burger', 'noodles', 'candy']我知道這應該很簡單,但我似乎不知道如何做到這一點。我嘗試執行以下操作:for x in sents: for z in food: if z in x: result.append(z) else: result.append("None")但這顯然會為食物中的每個列表項附加一個元素。我試圖讓我的“結果”列表看起來像這樣:result = ['pizza', 'sub', 'none']任何幫助將不勝感激。
3 回答

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
你可以嘗試用這個..
result = []
sents = ['I love pizza. its my favorite', 'lets go get a sub', 'I just want a big fat steak']
food = ['sub', 'pizza', 'burger', 'noodles', 'candy']
for lines in sents:
flg = 0
for items in food:
if items in lines:
result.append(items)
flg=1
if flg==0:
result.append('None')
print(result)
# result = ['pizza', 'sub', 'none']

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
您首先必須解析sents list
并查找關鍵字 ( food
)。找到這些關鍵字后,您可以將它們附加到結果列表中。這是我的觀點,來自另一種編程語言。您必須將這個理論應用到 Python 中。(我會發表評論,但聲望點不夠)

LEATH
TA貢獻1936條經驗 獲得超7個贊
Result = list([x if sents.find(x) else 'none' for x in food])
#updated for string.find() #also,不考慮大小寫差異
添加回答
舉報
0/150
提交
取消