我在这里有一个功能:
def evenlengthchecker(nestedlist):
length = len(nestedlist[0])
for element in nestedlist:
if len(element) != length:
return False
当给定的嵌套列表包含值时,这实际上有效。但是,当我尝试evenlengthchecker([])
,IndexError
到处都是这样的时候!
答案 0 :(得分:3)
问题是你的代码首先检查位置0的列表,这是一个带有空列表的索引错误。这是一种不会产生错误的替代方法:
return (len(set(len(elt) for elt in nestedlist)) <= 1)
这只是检查长度集中是否有多个列表长度;如果你最终得到空集,不会造成伤害。
答案 1 :(得分:2)
def evenlengthchecker(nestedlist):
a = [len(i) for i in nestedlist]
return len(set(a)) ==1
答案 2 :(得分:0)
您可以使用all
:
return all(len(x)==len(my_list[0]) for x in my_list)