gpt4 book ai didi

python - 如何访问嵌套的理解列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:02 34 4
gpt4 key购买 nike

我有一个可行的解决方案,用于创建一些随机数的列表,计算它们的出现次数,并将结果放入如下所示的字典中:

random_ints = [random.randint(0,4) for _ in range(6)]
dic = {x:random_ints.count(x) for x in set(random_ints)])

所以对于 [0,2,1,2,1,4] 我得到 {0: 1, 1: 2, 2: 2, 4:1}

我想知道是否可以在一行中表达这一点,最好不使用库函数——我想看看 python 有什么可能:)当我尝试将这两行整合为一行时,我不知道如何将这两个引用表达为相同的 random_ints 列表..???我期望是这样的:

dic = {x:random_ints.count(x) for x in set([random.randint(0,4) for _ in range(6)] as random_ints))

这当然行不通...

我在 SO 上查看了(嵌套的)列表理解,但我无法将找到的解决方案应用于我的问题。

谢谢,s。

最佳答案

有几种方法可以实现类似的目标,但没有一种是您想要的。你不能做的是简单地将名称绑定(bind)到列表/字典理解中的固定值。如果 random_ints 不依赖于 dic 所需的任何迭代变量,最好按您的方式进行,并创建 random_ints分别。

从概念上讲,字典理解中应该包含的唯一内容是需要为字典中的每个项目单独创建的内容。 random_ints 不符合这个标准;你只需要一个 random_ints 整体,所以没有理由把它放在字典理解中。

也就是说,一种方法是通过遍历包含您的 random_ints 的单元素列表来伪造它:

{x:random_ints.count(x) for random_ints in [[random.randint(0,4) for _ in range(6)]] for x in set(random_ints)}

关于python - 如何访问嵌套的理解列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377620/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com