所以我自己有点问题。我有一本字典,我想从该字典中随机选择 这不会返回列表 。
random.choice()返回一个列表
random.sample()返回一个列表
random.keys()和random.values()都返回列表
我需要一个函数来返回一个键和它的值。
伪代码如下:
import random
myDict = {"IronSword" : 15, "SteelSword" : 30, "Playing Cards" : 45, "Spider legs" : 60"}
d = random.functionNameHere(myDict, 1) # Same arguments as random.sample()
print d
哪些应该返回{" SteelSword" :30},而不是[' SteelSword'] 对不起,如果我有点脱节,我跳过简单的事情。我是一个中级蟒蛇,还没有进入字符串文字。任何帮助将不胜感激!
答案 0 :(得分:1)
制作列表是进行随机选择然后制作新词典的中间步骤:
items = list(myDict.items()) # list of key/value pairs
key, value = random.choice(items) # pick a random pair
print {key: value} # make a dictionary out of the result
希望这会有所帮助: - )
答案 1 :(得分:1)
在Python 2中,你可以这样做:
>>> dict(random.sample(myDict.items(), 1))
{'Playing Cards': 45}
random.sample
会返回一个元组列表,您可以将其反馈到dict
以制作包含一个条目的字典。
答案 2 :(得分:0)
random.choice
将从可迭代中随机选择。
from random import choice
d = dict([choice(myDict.items())])
print d
答案 3 :(得分:0)
如果您没有看到内置内容,请写下:
def getOne():
k = random.choice(myDict.keys())
v = myDict[k]
return (k,v)
测试:
>>> getOne()
('SteelSword', 30)
>>> getOne()
('Spiderlegs', 60)
>>> getOne()
('Spiderlegs', 60)
>>> getOne()
('SteelSword', 30)
>>> getOne()
('Playing Cards', 45)
答案 4 :(得分:0)
由于没有人使其行为与random.sample
相似:)
import random
myDict = {"IronSword" : 15, "SteelSword" : 30, "Playing Cards" : 45, "Spider legs" : 60}
random_keys = random.sample(myDict.keys(), 2)
d = {k: myDict[k] for k in random_keys}
return d