Я пытаюсь написать некоторый код, который случайным образом присваивает значения в одномерном массиве ключам в dict, а затем позже вызывает оба ключа в случайном порядке. Это не очень элегантно, но до сих пор я сделал это, создав массив:
array = [0,1,2,3,4,5,6]
рандомизирует его содержимое:
shuffle(array)
и затем присвоение различных диапазонов индексов в массиве (теперь перетасованном) ключам в dict:
a = array[0:2]
b = array[3:5]
dict = {'cond_A':a,'cond_B':b}
код надежно работает до этого момента (проверено печатью dict.get('cond_A')
и dict.get('cond_B')
Однако затем я пытаюсь назвать значения каждого ключа как отдельные наборы, представленные в случайном порядке, с помощью:
x = random.choice(dict.keys())
first_set = dict.get(x)
if x == dict['cond_A']:
second_set = dict.get('cond_B')
else:
second_set = dict.get('cond_A')
Иногда это работает так, что first_set
и second_set
содержат разные (не перекрывающиеся) значения, как и предполагалось. Тем не менее, половину времени оба набора содержат идентичные значения (которые не соответствуют напечатанным dict.get
значениям ранее). Например, вывод может выглядеть следующим образом при успешном запуске:
a == [1,3,4]
b == [6,2,5]
first_set == [1,3,4]
second_set == [6,2,5]
но при следующем запуске это может выглядеть так:
a == [1,3,4]
b == [6,2,5]
first_set == [1,3,4]
second_set == [1,3,4]
Ясно, что моя функция if-else не работает должным образом, но я понятия не имею, почему. Кто-нибудь знает, почему это может иметь место? Заранее спасибо за любую помощь!