Python - 如何确保嵌套列表中的所有元素长度都相同?

时间:2015-05-05 14:43:34

标签: python

我在这里有一个功能:

def evenlengthchecker(nestedlist):
    length = len(nestedlist[0])
    for element in nestedlist:
         if len(element) != length:
             return False

当给定的嵌套列表包含值时,这实际上有效。但是,当我尝试evenlengthchecker([])IndexError到处都是这样的时候!

3 个答案:

答案 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)
相关问题