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

发布于 2021-01-29 15:00:56

我有一本字典

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]

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

关注者
0
被浏览
74
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    产量:

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看