【发布时间】:2015-10-31 10:38:10
【问题描述】:
我想比较两个列表,例如 A 和 B。
A = [1,2,3]
B = [3,1,2]
我想编写一个函数来检查 A 中的所有项目是否都存在于 B 中。
即,对于上面的示例,该函数应返回 True。
注意:我的列表中的项目是不可散列的对象。
为此,我写了这段代码:
for elem in A:
if elem not in B:
return False
return True
代码运行良好。
但我想要一种更高效、更 Pythonic 的方式来做到这一点。
【问题讨论】:
-
sorted(A) == sorted(B)?或者带有集合的东西,这取决于你的比较应该是什么(从那个微不足道的例子中不清楚)。 -
@jonrsharpe 我无法对列表进行排序。这只是一个例子。我正在处理列表中的不同对象。
-
其实没问题,不做
A = sorted(A)那么A就不会被排序了。 -
sorted创建新列表。如果该示例不具有代表性,请展示一个具有代表性的示例。
标签: python list function python-3.x for-loop