我有一个包含 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
答案 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)