rob*_*ntw 15 python if-statement list
我有很多列表,我将在我的程序中使用,但我需要确保它们的长度相同,否则我将在以后的代码中遇到问题.
在Python中执行此操作的最佳方法是什么?
例如,如果我有三个列表:
a = [1, 2, 3]
b = ['a', 'b']
c = [5, 6, 7]
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
l = [len(a), len(b), len(c)]
if max(l) == min(l):
   # They're the same
Run Code Online (Sandbox Code Playgroud)
是否有更好或更多的Pythonic方法来做到这一点?
Sve*_*ach 26
假设你有一个非空的列表列表,例如
my_list = [[1, 2, 3], ['a', 'b'], [5, 6, 7]]
Run Code Online (Sandbox Code Playgroud)
你可以用
n = len(my_list[0])
if all(len(x) == n for x in my_list):
    # whatever
Run Code Online (Sandbox Code Playgroud)
这将短路,因此当遇到长度错误的第一个列表时它将停止检查.
len(set(len(x) for x in l)) <= 1
Run Code Online (Sandbox Code Playgroud)