首页 > 解决方案 > 从稀疏数据创建 python 列表推导

问题描述

我有两个列表(键和值),它们定义了一个稀疏定义的列表,每个键位置都有值。我想将其转换为每个位置都有值的密集列表。我可以用一个 for 循环来做到这一点,如下所示。

keys = [1,3,5]
values = [1.0, 3.0, 5.0]
column = [None]*10
for i, k in enumerate(keys):
    column[k] = values[i]

column
>>> [None, 1.0, None, 3.0, None, 5.0, None, None, None, None]

是否可以使用列表理解创建列?

标签: pythonlist-comprehensionsparse-matrix

解决方案


您可以简单地使用这个单线list comprehension

column =[None if i not in dict(zip(keys,values)).keys() else dict(zip(keys,values))[i] for i in range(10)]

输出:

[None, 1.0, None, 3.0, None, 5.0, None, None, None, None]

推荐阅读