使用随机嵌套字典更新字典

时间:2019-07-29 17:29:20

标签: python dictionary random

我需要使用随机密钥(该密钥是嵌套的dict)更新字典,但是这样做会给我一个错误。

我尝试使用.update,并使用random.choice(dict),但这除了给出错误之外什么都不做

dictA = { 1 : 2, 2 : 3, 3 : 4}
dictB = {}
dictB.update(random.choice(list(dictA)))

我希望dictB具有一个随机密钥,但是,我得到的是ValueError:字典更新序列元素#0的长度为1; 2个为必填项。

4 个答案:

答案 0 :(得分:4)

您可以在dict.items()上进行随机选择,它会从字典中返回一个随机键-值对:

k, v = random.choice(list(dictA.items()))
dictB.update({k: v})

答案 1 :(得分:0)

实际上我不确定您要做什么,但是假设您要使用随机的process.env(键,值为dictB)更新item

dictA

答案 2 :(得分:0)

请中止进行适当的调试:

随机导入

dictA = { 1 : 2, 2 : 3, 3 : 4}
dictB = {}
listA = list(dictA)
pick = random.choice(listA)
print(listA, pick)
dictB.update(pick)

print的输出是:

[1、2、3] 3

因此,您正在使用参数update调用3,这是不合法的。我认为,您想要做的是抓取尚未完成的整个条目:相反,您列出了dict键的列表,并从中进行了随机选择。

最后尝试一下:构建所选键及其值的一元字典。

dictB.update({pick : dictA[pick]})
print(dictB)

输出:

[1, 2, 3] 2
{2: 3}

答案 3 :(得分:0)

也许这就是您要寻找的

temp=random.choice(list(dictA))
dictB.update({temp:dictA[temp]})