当前位置: 首页 > 面试题库 >

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

黄鸣
2023-03-14
问题内容

我有一本字典

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]

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


问题答案:

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

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

产量:

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

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



 类似资料:
  • 我有一个清单 我想要一本像下面这样的字典 我尝试为new_dict创建一个列表为key_list: 然后,我尝试对和使用嵌套循环,但当我看到列表中的'l'和'd'时,我处于停滞状态

  • 问题内容: 我有不同长度的清单清单(例如),并想将其转换成整数数组。我了解多维数组中的“子”数组必须具有相同的长度。那么将上述示例中的列表转换成这样的数组(即用零完成)的最有效方法是什么? 问题答案: 您可以使用np.zeros创建一个numpy数组,并用列表元素填充它们,如下所示。 结果是

  • 问题内容: 我正在尝试将Python字典转换为Python列表,以便执行一些计算。 那是我的尝试…但是我无法解决问题所在? 问题答案: 你的问题是,你必须和引号使他们的字符串,即你设置包含字符串,而不是变量的值。另外,您不会清除列表,因此每次都添加到列表中,而不是仅包含两个项目。 要修复您的代码,请尝试以下操作: 你并不需要将循环变量拷贝和我放弃了出来到另一个变量在使用它们之前。同样,您无需使用a

  • 问题内容: l = [“a”, “b”, “c”, “d”, “e”] 我想将此列表转换为字典,例如: 因此,基本上,偶数将是关键,而赔率将是值。我知道我可以使用“非Python”方式(例如使用if语句的for循环)来完成此操作,但我相信应该有一种“ Python”方式来完成此任务。因此,感谢您的帮助:) 问题答案: 使用通常的石斑鱼食谱,您可以执行以下操作: Python 2: Python 3

  • 问题内容: 我正在寻找在Swift中实现合理的C互操作性的最简单方法,而我当前的代码块是将(是)转换为数组。 当前,我有一个幼稚的算法,可以采用和一个字节,然后将其逐个元素转换为数组: 可以使用来加速循环本身,但是并不能消除循环本身的问题。 我知道这个SO问题涵盖了如何转换为,但是完全是另一种野兽。是否有一种方便的Swift方法将长度字节从中复制到中?我更希望使用纯Swift方法,而不要通过或类似

  • 问题内容: 我有一个清单 我想将其转换为字典 我该怎么做? 问题答案: 采用: 返回: 如果需要整数,请在以下位置更改分配: 这将给出: