gpt4 book ai didi

python - 断言列表列表中的所有列表都相等

转载 作者:行者123 更新时间:2023-12-05 09:37:08 25 4
gpt4 key购买 nike

我想检查列表列表中的所有列表是否相等。

我成功的一个例子是两个列表 l2 的列表

all([a == b for a, b in zip(*l2)])

正确返回 True 如果 l2 = [[1,2],[1,2]]Falsel2 = [[1,2],[1,666]]

我希望能够在列表列表 l 中使用相同代码包含更多列表的情况下直接使用此代码,但它似乎不起作用。

例如,当

l=[[1,2],[1,2],[1,2]]
all([a == b for a, b in zip(*l)])

返回以下错误:

ValueError: too many values to unpack (expected 2)

我不明白为什么会这样,因为 zip(*l) 看起来应该可以工作:

list(zip(*l))
>> [(1, 1, 1), (2, 2, 2)]

最佳答案

使用观察 a == b 和 a == c 意味着 a == c。您应该用其他列表测试第一个列表。

def equalLists(lists):
return not lists or all(lists[0] == b for b in lists[1:])

>>> equalLists([])
True
>>> equalLists([1,2],[1,2])
True
>>> equalLists([1,2],[1,2],[1,2])
True
>>> equalLists([1,2],[1,2],[1,3])
False

关于python - 断言列表列表中的所有列表都相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64571277/

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