遍历列表,如果在其他列表中找不到则返回none

我正在尝试迭代我的“发送”列表。如果我的其他列表“食物”包含列表“发送”中的元素,我想将列表“食物”中的值附加到“结果”,如果没有,则不附加任何元素。


到目前为止我所拥有的是:


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']


任何帮助将不胜感激。


月关宝盒
浏览 116回答 3
3回答

阿波罗的战车

你可以尝试用这个..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猫小萌

您首先必须解析sents list并查找关键字 ( food)。找到这些关键字后,您可以将它们附加到结果列表中。这是我的观点,来自另一种编程语言。您必须将这个理论应用到 Python 中。(我会发表评论,但声望点不够)

LEATH

Result = list([x if sents.find(x) else 'none' for x in food])#updated for string.find() #also,不考虑大小写差异
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python