【发布时间】:2017-01-01 10:07:18
【问题描述】:
我有 3 个列表:
list_1 = [1,2]list_2 = [2,1]list_3 = [1,2,3]
注意:[] 中的数字是来自 Django 模型的 ids
我想测试两个列表的内容(但不一定是顺序)是否完全相同。参考上面3个例子:
比较 list_1 和 list_2
应该返回 True,
但如果我在 list_2 和 list_3 之间或 list_1 和 list_3 之间进行验证,
那么结果应该是False。
我如何做到这一点?
谢谢:D
【问题讨论】:
-
我不明白这个问题。如果要测试
list_1中的数字是否在list_2中,为什么要在list_2和list_3之间进行验证?为什么这会导致它返回False? -
将列表转换为
set,然后使用set.issubset()判断一个列表是否包含另一个列表。 -
使用集合比较慢。请参阅底部的链接。另外,我认为 OP 不想比较琐碎的子集,而是比较相等性,从而使您的答案可能不正确。哦,stackoverflow.com/q/7828867/5775722 的可能重复项
-
感谢@Barmar 的回复,我想检查一个列表中的数字是否与另一个列表中的数字相等,那么它们中的值必须相同
-
现在我明白了。你想要的是
validate(list_1, list_2)是真的,但validate(list_2, list_3)是假的。