在Python中比较列表项值与其他列表中的其他项

2024-10-01 04:50:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将一个列表中的值与第二个列表中的值进行比较,并返回第一个列表中的所有值,而不是第二个列表中的值,即

list1 = ['one','two','three','four','five']
list2 = ['one','two','four']

会返回“3”和“5”。在

我对python只有一点经验,所以这可能是一个荒谬而愚蠢的方法来解决它,但我目前所做的是:

^{pr2}$

但是,这会抛出一个错误“iterationover non-sequence”,我认为其中一个或两个“list”实际上不是list(两者的原始输出格式与我的第一个示例相同)


Tags: 方法列表错误经验onelistthreefour
3条回答

set(list1).difference(set(list2))

使用^{}

>>> list1 = ['one','two','three','four','five']
>>> list2 = ['one','two','four']
>>> set(list1).difference(list2)
{'five', 'three'}

您可以跳过list2到set的转换。在

使用集合获取列表之间的差异:

>>> list1 = ['one','two','three','four','five']
>>> list2 = ['one','two','four']
>>> set(list1) - set(list2)
set(['five', 'three'])

相关问题 更多 >