def shuffle(q):
"""
The input of the function will
be the dictionary of the question
and answers. The output will
be a random question with answer
"""
selected_keys = []
i = 0
while i < len(q):
current_selection = random.choice(q.keys())
if current_selection not in selected_keys:
selected_keys.append(current_selection)
i = i+1
print(current_selection+'? '+str(q[current_selection]))
import random
colors = {
'purple': '#7A4198',
'turquoise':'#9ACBC9',
'orange': '#EF5C35',
'blue': '#19457D',
'green': '#5AF9B5',
'red': ' #E04160',
'yellow': '#F9F985'
}
color=random.choice([hex_color for color_value in colors.values()]
print(f'The new color is: {color}')
17条答案
按热度按时间bkkx9g8r1#
一种方法是:
编辑:这个问题在最初的帖子发布几年后被修改了,现在要求的是一对,而不是一个项目。最后一行现在应该是:
ercv8c1e2#
我写这篇文章是为了解决同样的问题:
https://github.com/robtandy/randomdict
它有o(1)个对键、值和项的随机访问权限。
hpcdzsge3#
通过在
keys
(国家)词典。xytpbqjk4#
试试这个:
这绝对管用。
rsl1atfo5#
如果你不想使用
random
模块中,也可以尝试popitem():自从
dict
不维护秩序,通过使用popitem
你可以从它那里得到任意(但不是完全随机)的物品。还要记住
popitem
从字典中删除键值对,如文档中所述。popitem()用于对字典进行破坏性迭代
jdzmm42g6#
这适用于python 2和python 3:
随机键:
随机值
随机键和值
liwlm1x97#
因为最初的帖子想要这对:
(python 3样式)
z18hc3ub8#
如果不想使用random.choice(),可以这样尝试:
sdnqo3pr9#
既然这是家庭作业:
退房
random.sample()
它将从列表中选择并返回一个随机元素。您可以使用dict.keys()
以及一个字典值列表dict.values()
.ehxuflar10#
我想你是在申请测验。对于这种应用,我编写了一个函数,如下所示:
如果我能提供
questions = {'VENEZUELA':'CARACAS', 'CANADA':'TORONTO'}
并调用函数shuffle(questions)
然后输出如下:您还可以通过洗牌选项来进一步扩展它
o2gm4chl11#
对于python的现代版本(从3开始),方法返回的对象
dict.keys()
,dict.values()
以及dict.items()
是视图对象*。而且可以迭代,所以直接使用random.choice
不可能,因为现在它们不是列表或集合。一种方法是使用列表理解来完成这项工作
random.choice
:参考文献:
python 3.8:数据结构-列表理解:
2nbm6dog12#
试试这个(使用random.choice from items)
icnyk63a13#
下面是一个字典类的小python代码,它可以在o(1)时间内返回随机键(为了便于阅读,我在代码中加入了mypy类型):
vawmfj5a14#
从字典集中选择50个随机键值
dict_data
:omqzjyyz15#
一种方法是:
编辑:这个问题在最初的帖子发布几年后被修改了,现在要求的是一对,而不是一个项目。最后一行现在应该是: