我需要检查Python列表是否包含两个相等的一半。例如,此列表执行:
t1 = time.time()
这不是
[6, 2, 0, 2, 3, 2, 6, 2, 0, 2, 3, 2]
我已经尝试过这项检查:[6, 2, 0, 2, 4, 6]
但对于较大的列表来说似乎太慢了。还有其他解决方案吗?
答案 0 :(得分:8)
可以在不创建两个子列表的情况下进行检查。对于真正的大型列表来说可能会更快。
n = len(lst)//2
all(lst[i]==lst[i+n] for i in range(n))
如果您还要检查列表的长度是否均匀,您还可以添加
len(lst)%2==0
作为条件。