小编典典

将字典转换为具有基于值的长度的列表

python

我有一本字典

d = {1: 3, 5: 6, 10: 2}

我想将其转换为包含字典键的列表。每个密钥应重复与其关联值相同的次数。

我写了这段代码来完成这项工作:

d = {1: 3, 5: 6, 10: 2}
l = []
for i in d:
    for j in range(d[i]):
        l.append(i)
l.sort()
print(l)

输出:

[1, 1, 1, 5, 5, 5, 5, 5, 5, 10, 10]

但是我希望它能成为列表理解者。如何才能做到这一点?


阅读 201

收藏
2021-01-20

共1个答案

小编典典

您可以使用列表理解来做到这一点:

[i for i in d for j in range(d[i])]

产量:

[1, 1, 1, 10, 10, 5, 5, 5, 5, 5, 5]

您可以再次对其进行排序以获得所需的列表。

2021-01-20