def vector_size_check(*vector_variables):
for i in range(len(vector_variables) - 1):
if len(vector_variables[i]) == len(vector_variables [i + 1]):
return True
else:
return False
print(vector_size_check([1, 2, 3], [4, 2], [1, 5, 6]))
我想用一行代码表达上面的代码(列表理解)。
答案 0 :(得分:2)
鉴于您要检查所有可迭代对象的长度是否相同:
def vector_size_check(*vector_variables):
return all(len(x) == len(vector_variables[0]) for x in vector_variables)
但是我个人还是主张一种即使代码多行也更易于理解的解决方案。
答案 1 :(得分:1)
一种非常简洁的编码方式:
def vector_size_check(*vector_variables):
return len(set(map(len,vector_variables)))==1
答案 2 :(得分:1)
目前尚不清楚代码应该做什么。因为您要求列表理解,所以我假设结果应该是一个列表,根据每对连续元素的长度是否相同,包含真/假。为此,您可以使用zip(lst, lst[1:])
配方来迭代这些对:
def vector_size_check(*vs):
return [len(a) == len(b) for a, b in zip(vs, vs[1:])]
>>> print(vector_size_check([1, 2, 3], [4, 2], [1, 5, 6]))
[False, False]
>>> print(vector_size_check([1, 2, 3], [4, 2], [1,2], [1, 5, 6], [5,6,7]))
[False, True, False, True]