我试图从字典中选择一个随机值.然后从同一个字典中选择第二个值.保证它是不同的.
def pick_value():
value, attribute = random.choice(list(my_dict.items()))
return(value, attribute)
Run Code Online (Sandbox Code Playgroud)
如果我调用它的功能,但是不能保证第二次调用它时,值会与第一次不同,所以我尝试了下面的操作.
my_value_list = []
val1, attr1 = pick_value()
my_value_list.append(val1)
val2, attr2 = pick_value()
if val2 in my_value_list:
val2, attr2 = pick_value()
Run Code Online (Sandbox Code Playgroud)
我偶尔会得到匹配的值.我尝试用,但仍然没有运气取代if val2 in声明while val2 in.我误解了一些简单的事吗?
如果您只需要两个值(或事先知道的任何固定数字),请使用random.sample().这就是它的用途:采样"无需替换",即一旦你从列表中选择了一个元素,它就再也无法被选中了.
samples = random.sample(list(mydict.items()), 2)
attr1, val1 = samples[0]
attr2, val2 = samples[1]
Run Code Online (Sandbox Code Playgroud)