python - 笨拙的理解清理

标签 python list-comprehension dictionary-comprehension

我有一个嵌套循环,它将传统的 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 循环要快一点。

关于python - 笨拙的理解清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623557/

相关文章:

python - 能够使用 ffmpeg 和 python 读取当前音频帧

python - python中alpha排序最快的列表

python - 如何在 blender 中安装python模块

python - 带列表的高效正则表达式

python - 可以在其方法中使用列表理解派生吗?

具有多个列表和 if else 条件的 Python 列表理解

python - 使用字典理解的语法无效

python - 如何从列表列表中创建字典

python - 如何合并两个具有共同键但不同 `unique-identifier: list values` 的字典(defaultdict)?

python - 以周期性间隔记录无限数据