笨拙的理解清理
clumsy comprehension cleanup
我有一个嵌套循环,它混合了传统的 for 循环和列表理解:
dct = {}
for row in pat_mat:
l = [float(x) for x in row[1:]]
dct[row[0]] = l
如何将其聚合到嵌套列表和字典理解中?您甚至认为这会改变代码的性能或可读性吗?我应该不管它吗?
这是输入:
pat_mat = [['A1BG', '3.59934160035066', '9.01032836656166', '7.49267439718532', '6.41276289887381'], ['A1CF', '0', '0', '0', '0'], ['A2BP1', '3.06579631517157', '5.18615584800032', '3.18689667390982', '2.61953039353937']]
以及所需的输出:
dict = {'A1CF': [0.0, 0.0, 0.0, 0.0], 'A2BP1': [3.06579631517157, 5.18615584800032, 3.18689667390982, 2.61953039353937], 'A1BG': [3.59934160035066, 9.01032836656166, 7.49267439718532, 6.41276289887381]}
可能是 -
dct = {row[0]:[float(x) for x in row[1:]] for row in pat_mat}
此外,如果您的代码中 dict 的用法不是 example ,则您不应命名变量 dict,因为它会覆盖内置函数 dict。
我认为推导比他们的 for 循环对应物快一点。
我有一个嵌套循环,它混合了传统的 for 循环和列表理解:
dct = {}
for row in pat_mat:
l = [float(x) for x in row[1:]]
dct[row[0]] = l
如何将其聚合到嵌套列表和字典理解中?您甚至认为这会改变代码的性能或可读性吗?我应该不管它吗?
这是输入:
pat_mat = [['A1BG', '3.59934160035066', '9.01032836656166', '7.49267439718532', '6.41276289887381'], ['A1CF', '0', '0', '0', '0'], ['A2BP1', '3.06579631517157', '5.18615584800032', '3.18689667390982', '2.61953039353937']]
以及所需的输出:
dict = {'A1CF': [0.0, 0.0, 0.0, 0.0], 'A2BP1': [3.06579631517157, 5.18615584800032, 3.18689667390982, 2.61953039353937], 'A1BG': [3.59934160035066, 9.01032836656166, 7.49267439718532, 6.41276289887381]}
可能是 -
dct = {row[0]:[float(x) for x in row[1:]] for row in pat_mat}
此外,如果您的代码中 dict 的用法不是 example ,则您不应命名变量 dict,因为它会覆盖内置函数 dict。
我认为推导比他们的 for 循环对应物快一点。