我有两个列表,l1
和l2
。我需要l1
中的项目,这些项目不在l2
中。
l1 = [2, 3, 4, 5]
l2 = [0, 1, 2, 3]
我只想得到[4,5]-只有l1中的新值。
[i for i in l1 if not i in l2 ]
我可以不做迭代吗?
最佳答案
简短的回答,是的:list(set(l1) - set(l2))
,尽管这不会保持顺序。
长答案,不,因为在内部CPU总是会迭代的。尽管如果您使用set()
,则迭代将得到高度优化,并且迭代速度将比列表理解要快得多(更不用说检查成员资格value in list
的速度是,而otset_rstrong的集合集和列表列表则要快)。
关于python - 从Python中的两个列表中获得差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5305164/