如何从字典中获取随机选择的值

时间:2021-04-25 09:37:24

标签: python dictionary

我有一个包含 N 个键和值的目录,我只想迭代 4 个随机且唯一的键和值,然后需要检查 4 个条目中的最高和最低键和值,然后找到减法。

让我们考虑:

    main_dict = {"a":144,"c":55,"d":33,"e":65,"f":44,"s":344,"r":90,"t":33}
   
    random_key_and_values = 4

新词典将是

    new_dict = {"c":55,"f":44,"r":90,"d":33}

对于新字典,我需要减去 new_dict 值的最高值和最低值。

    output  = 57

2 个答案:

答案 0 :(得分:2)

@tino 的答案可能有效,但无需第三方库即可完成,只需使用内置函数即可:

import random

main_dict = {"a" : 144, "c" : 55, "d" : 33, "e" : 65, "f" : 44, "s" : 344, "r" : 90, "t" : 33}
rand_choice_len = 4
new_dict = dict(random.choices(list(main_dict.items()), k=rand_choice_len))
output = max(new_dict.values()) - min(new_dict.values())
print(new_dict, "difference of highest and lowest is:", output)

参考文献:
random.choices
max
min dict

答案 1 :(得分:0)

下面的代码应该就是你要找的。几个循环和 np.random.choice

import numpy as np

main_dict = {"a":144,"c":55,"d":33,"e":65,"f":44,"s":344,"r":90,"t":33}
   
random_key_and_values = 4

new_dict = { key : main_dict[key] for key in np.random.choice(np.array(list(main_dict.keys())),random_key_and_values)}

diff = np.array(list(new_dict.values())).max() - np.array(list(new_dict.values())).min()

print(diff)