当需要调用返回元组的函数时简化列表理解
Simplify list comprehension when a call to function returning a tuple is necessary
我有以下功能:
def get_cofactors_matrix(self) -> 'Matrix':
"""Returns the cofactors matrix"""
cofactors = [list(map(lambda x: x[1] * x[2], [self.get_cofactor_at(i, j) for j in range(self.get_columns_count())])) for i in range(self.get_lines_count())]
...
我想简化列表理解,get_cofactor_at(line, column)
return 一个包含 3 个值的元组,因此在不使用列表理解的情况下,此代码可以用以下方式表示:
result = []
for i in range(lines):
result_line = []
for j in range(columns):
_, x, y = self.get_cofactor_at(i, j)
result_line.append(x * y)
result.append(result_line)
更好的表达方式是什么?
我会隔离维度并使用理解来代替列表(映射(lambda ...
lines,cols = self.get_lines_count(),self.get_columns_count()
cofactors = [[x*y for _,x,y in self.get_cofactor_at(i, j) for j in range(cols)]
for i in range(lines)]
我有以下功能:
def get_cofactors_matrix(self) -> 'Matrix':
"""Returns the cofactors matrix"""
cofactors = [list(map(lambda x: x[1] * x[2], [self.get_cofactor_at(i, j) for j in range(self.get_columns_count())])) for i in range(self.get_lines_count())]
...
我想简化列表理解,get_cofactor_at(line, column)
return 一个包含 3 个值的元组,因此在不使用列表理解的情况下,此代码可以用以下方式表示:
result = []
for i in range(lines):
result_line = []
for j in range(columns):
_, x, y = self.get_cofactor_at(i, j)
result_line.append(x * y)
result.append(result_line)
更好的表达方式是什么?
我会隔离维度并使用理解来代替列表(映射(lambda ...
lines,cols = self.get_lines_count(),self.get_columns_count()
cofactors = [[x*y for _,x,y in self.get_cofactor_at(i, j) for j in range(cols)]
for i in range(lines)]