我需要使用随机密钥(该密钥是嵌套的dict)更新字典,但是这样做会给我一个错误。
我尝试使用.update,并使用random.choice(dict),但这除了给出错误之外什么都不做
dictA = { 1 : 2, 2 : 3, 3 : 4}
dictB = {}
dictB.update(random.choice(list(dictA)))
我希望dictB具有一个随机密钥,但是,我得到的是ValueError:字典更新序列元素#0的长度为1; 2个为必填项。
答案 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]})