python - 如何在Python中以随机顺序遍历dict?

标签 python random

如何以随机顺序遍历字典的所有项目?我的意思是 random.shuffle,但对于字典。

最佳答案

dict 是一组无序的键值对。当您迭代 dict 时,它实际上是随机的。但要显式随机化键值对序列,您需要使用不同的有序对象,例如列表。 dict.items()dict.keys()dict.values()分别返回列表,可以打乱。

items=d.items() # List of tuples
random.shuffle(items)
for key, value in items:
    print key, value

keys=d.keys() # List of keys
random.shuffle(keys)
for key in keys:
    print key, d[key]

或者,如果您不关心 key :

values=d.values() # List of values
random.shuffle(values) # Shuffles in-place
for value in values:
    print value

你也可以“随机排序”:

for key, value in sorted(d.items(), key=lambda x: random.random()):
    print key, value

关于python - 如何在Python中以随机顺序遍历dict?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785672/

相关文章:

python - 使用 h5py 在 debian python 中访问文件

python - django.core.exceptions.AppRegistryNotReady : Apps aren't loaded yet. 文件初始化

python - 抓取具有不同数据元素的页面并且所有span标签具有相同的名称

python - 验证 Marshmallow 中的字段但不反序列化它

python - 如何获得 pandas groupby 中的前 3 个框聚合 - 10 分制中大于 7 分的百分比?

java - 生成两个相同的随机数和一个不同的随机数

javascript - 随机数生成

java - 数学类、方法和随机数 (Java)

java - Java随机打乱列表

java - 每次运行相同输入时生成唯一的随机数序列