gpt4 book ai didi

Python比较元组

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:34 25 4
gpt4 key购买 nike

你好,我想在 Python 中将一个列表与另一个列表进行比较,其中元素的顺序无关紧要

例如

list=[1,2,3]

应该等于 list2=[3,2,1] 并且等于 list3=[3,1,2] 等。我想动态地做因为我不知道列表中有多少元素?有什么快速的方法吗?我想出的唯一方法是在每个列表中搜索另一个列表的元素,但这有 O(n^2)。我也无法对列表进行排序,因为在我的实现中,列表是列表的列表。我只是想要一个简单版本的问题的答案,然后修改它!你能帮帮我吗?

最佳答案

您可以简单地将列表转换为集合,然后简单地检查它们是否相等

list1, list2, list3 = [1, 2, 3], [2, 3, 1], [1, 2, 3, 4]
print set(list1) == set(list2) # True
print set(list2) == set(list3) # False
print set(list1) == set(list3) # False

如果要确保元素只存在与另一个列表中相同的次数,可以使用collections.counter。 ( Thanks @delnan ),像这样

list1, list2, list3, list4 = [1, 2, 3], [2, 3, 1], [1, 2, 3, 4], [1, 2, 3, 3]
from collections import Counter
print Counter(list1) == Counter(list2) # True
print Counter(list2) == Counter(list3) # False
print Counter(list1) == Counter(list3) # False
print Counter(list1) == Counter(list4) # False

关于Python比较元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21364883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com