Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中带有随机变量的命令式数据类型_Python_Python 3.x - Fatal编程技术网

Python中带有随机变量的命令式数据类型

Python中带有随机变量的命令式数据类型,python,python-3.x,Python,Python 3.x,我正在尝试使用Python3.2创建字典数据类型。我使用随机方法在mydict中随机选择一个值并打印出该值。但是,我也想打印键,例如动物:大象,但我只能打印键或值。我该怎么做呢 mydict = {'Animal': ('elephant', 'giraffe', 'rhinoceros', 'hippopotamus', 'leopard'), 'Fruit': ('strawberry', 'mango', 'watermelon', 'orange', 'durian'

我正在尝试使用Python3.2创建字典数据类型。我使用随机方法在mydict中随机选择一个值并打印出该值。但是,我也想打印键,例如动物:大象,但我只能打印键或值。我该怎么做呢

mydict = {'Animal': ('elephant', 'giraffe', 'rhinoceros', 'hippopotamus', 'leopard'),
          'Fruit': ('strawberry', 'mango', 'watermelon', 'orange', 'durian')}
random_word = random.choice(random.choice(list(mydict.values())))
毫不奇怪,mydict.values会为您提供这些值。您可以使用mydict.items以元组的形式获取键/值对

编辑:听起来你想做这样的事情:

category = random.choice(list(mydict.keys())
item = random.choice(mydict[category]))
print category, item
毫不奇怪,mydict.values会为您提供这些值。您可以使用mydict.items以元组的形式获取键/值对

编辑:听起来你想做这样的事情:

category = random.choice(list(mydict.keys())
item = random.choice(mydict[category]))
print category, item
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
此行。加入%s:%s%k,如果mydict[k]中的i是此循环的长版本,则mydict中的i代表k:

i = random.choice(values_list)
for k in mydict:
    if i in mydict[k]:
       print "%s: %s" % (k,i)
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
此行。加入%s:%s%k,如果mydict[k]中的i是此循环的长版本,则mydict中的i代表k:

i = random.choice(values_list)
for k in mydict:
    if i in mydict[k]:
       print "%s: %s" % (k,i)

但是使用mydict.items将返回整个列表。我首先使用random从动物或水果中进行选择,然后从与键关联的值中进行选择。比如说,在选择了随机方法“动物和大象”之后,我的代码只能打印大象,但我想在屏幕上打印动物和大象screen@user1744424当前位置查看我编辑的答案。如果要分别保存这两个值,需要执行两个步骤。谢谢!这就是我要找的!感谢您快速高效的回复。但是使用mydict.items将返回整个列表。我首先使用random从动物或水果中进行选择,然后从与键关联的值中进行选择。比如说,在选择了随机方法“动物和大象”之后,我的代码只能打印大象,但我想在屏幕上打印动物和大象screen@user1744424当前位置查看我编辑的答案。如果要分别保存这两个值,需要执行两个步骤。谢谢!这就是我要找的!感谢您快速高效的回复。