idx_picks = np.random.choice(len(d), num_of_picks, replace=False) #(Don't pick the same element twice)
result = dict ()
c_keys = [d.keys()] #not so efficient - unfortunately .keys() returns a non-indexable object because dicts are unordered
for i in idx_picks:
result[c_keys[i]] = d[i]
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}')
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]))
17条答案
按热度按时间sdnqo3pr1#
既然这是家庭作业:
退房
random.sample()
它将从列表中选择并返回一个随机元素。您可以使用dict.keys()
以及一个字典值列表dict.values()
.cfh9epnr2#
uemypmqf3#
我通过寻找一个相当类似的解决方案找到了这篇文章。要从dict中选取多个元素,可以使用以下方法:
omqzjyyz4#
一种方法是:
编辑:这个问题在最初的帖子发布几年后被修改了,现在要求的是一对,而不是一个项目。最后一行现在应该是:
vawmfj5a5#
从字典集中选择50个随机键值
dict_data
:icnyk63a6#
下面是一个字典类的小python代码,它可以在o(1)时间内返回随机键(为了便于阅读,我在代码中加入了mypy类型):
2nbm6dog7#
试试这个(使用random.choice from items)
o2gm4chl8#
对于python的现代版本(从3开始),方法返回的对象
dict.keys()
,dict.values()
以及dict.items()
是视图对象*。而且可以迭代,所以直接使用random.choice
不可能,因为现在它们不是列表或集合。一种方法是使用列表理解来完成这项工作
random.choice
:参考文献:
python 3.8:数据结构-列表理解:
ehxuflar9#
我想你是在申请测验。对于这种应用,我编写了一个函数,如下所示:
如果我能提供
questions = {'VENEZUELA':'CARACAS', 'CANADA':'TORONTO'}
并调用函数shuffle(questions)
然后输出如下:您还可以通过洗牌选项来进一步扩展它
bkkx9g8r10#
一种方法是:
编辑:这个问题在最初的帖子发布几年后被修改了,现在要求的是一对,而不是一个项目。最后一行现在应该是:
z18hc3ub11#
如果不想使用random.choice(),可以这样尝试:
liwlm1x912#
因为最初的帖子想要这对:
(python 3样式)
jdzmm42g13#
这适用于python 2和python 3:
随机键:
随机值
随机键和值
rsl1atfo14#
如果你不想使用
random
模块中,也可以尝试popitem():自从
dict
不维护秩序,通过使用popitem
你可以从它那里得到任意(但不是完全随机)的物品。还要记住
popitem
从字典中删除键值对,如文档中所述。popitem()用于对字典进行破坏性迭代
xytpbqjk15#
试试这个:
这绝对管用。