如何有效地检查列表的前半部分是否与另一部分相等?

时间:2017-06-02 07:58:01

标签: python list python-3.x equality

我需要检查Python列表是否包含两个相等的一半。例如,此列表执行:

t1 = time.time()

这不是

[6, 2, 0, 2, 3, 2, 6, 2, 0, 2, 3, 2]

我已经尝试过这项检查:[6, 2, 0, 2, 4, 6] 但对于较大的列表来说似乎太慢了。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:8)

可以在不创建两个子列表的情况下进行检查。对于真正的大型列表来说可能会更快。

n = len(lst)//2
all(lst[i]==lst[i+n] for i in range(n))

如果您还要检查列表的长度是否均匀,您还可以添加

len(lst)%2==0

作为条件。