字典键*值到python中的列表

我的字典如下:

the_dict = {'1': 2,
 '2': 4,
 '3': 3,
 '8': 3,
 '9': 3,
 '10': 4,
 '14': 4}

我需要将键乘以值来创建一个长长的平面列表。我的尝试如下,但它搞砸了 10 和 14:

new_target = []
for k, v in zip(the_dict.keys(), the_dict.values()):
    new_target += list(k*v)

此代码产生:
['1', '1', '2', '2', '2', '2', '3', '3', '3', '8', '8', '8', '9', '9', '9', '1', '0', '1', '0', '1', '0', '1', '0', '1', '4', '1', '4', '1', '4', '1', '4']

该代码很接近,但由于 10 和 14 上的以下行为,它不起作用;list("10" *2)产生['1', '0', '1', '0']而不是所需的['10', '10'].

如何创建所需的列表?

回答

添加到 M-Chen-3 的答案中,您还可以使用列表理解将其压缩为类似的内容:

new_target = [k for k, v in the_dict.items() for _ in range(v)]


以上是字典键*值到python中的列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>