mydict.values()
將打印值,它可能不是你所期望的:
>>> random.choice(mydict.values())
('strawberry', 'mango', 'watermelon', 'orange', 'durian')
>>> random.choice(mydict.values())
('elephant', 'giraffe', 'rhinoceros', 'hippopotamus', 'leopard')
我認爲你真正想要做的就是將所有鍵的所有值組合起來,隨機選擇一個值,然後找出它屬於哪個鍵。要做到這一點,首先需要選擇所有的值隨機他們:
>>> for i in mydict.values():
... for v in i:
... values_list.append(v)
...
>>> values_list
['strawberry', 'mango', 'watermelon', 'orange', 'durian', 'elephant', 'giraffe',
'rhinoceros', 'hippopotamus', 'leopard']
現在,你能得到的隨機值:
>>> random.choice(values_list)
'leopard'
>>> random.choice(values_list)
'strawberry'
>>> random.choice(values_list)
'hippopotamus'
下一步是找出這屬於哪個鍵於:
>>> i = random.choice(values_list)
>>> ''.join("%s: %s" % (k,i) for k in mydict if i in mydict[k])
'Fruit: watermelon'
默認情況下,當你遍歷一個字典,你會拿到鑰匙:
>>> for i in mydict:
... print i
...
Fruit
Animal
此行''.join("%s: %s" % (k,i) for k in mydict if i in mydict[k])
是這個循環的長版:
i = random.choice(values_list)
for k in mydict:
if i in mydict[k]:
print "%s: %s" % (k,i)
但使用mydict.items()將返回我的整個列表。我先隨機選擇動物或水果,然後從與鍵相關的值中進行選擇。比方說隨機方法選擇動物和大象後,我的代碼只能打印出大象,但我想在屏幕上打印出動物和大象 – user1744424
@ user1744424:請參閱我編輯的答案。如果要分開保存兩個值,則需要執行兩個步驟。 – BrenBarn
謝謝!這是我正在尋找的!感謝您快速高效的回覆。 – user1744424