У меня есть словарь, как это:питона значение переменной длиной в словаре
d1 = {2: 'Joe', 5: 'Bob', 7: 'Doug', 9 : 'Bob', 10 : 'Doug', 12 : 'Joe', 15 : 'Dave'}
Я хочу использовать его, чтобы заполнить другой словарь, как это:
def MakeDict():
d, myList = {}, []
for num in range(np.max(d1.keys())+1):
value = d1.get(num)
if value != None and value not in myList:
myList.append(value)
d[num] = myList
return d
Я хотел бы функцию, чтобы вернуться это: 0: [], 1: [], 2: ['Joe'], 3: ['Joe'], 4: ['Joe'], 5: ['Joe', 'Bob'], 6 : ['Joe': 'Bob'], 7: ['Joe', 'Bob', 'Doug'] и т. Д.
вместо этого он возвращает это: 0: ['Joe', 'Bob', 'Doug'], 1: ['Joe', 'Bob', 'Doug'], 2: ['Joe', 'Bob', 'Doug'], 3 : ['Joe', 'Bob', 'Doug'] ...
Я предполагаю, что это не работает так, как мне бы хотелось, потому что меняется список из списка. Есть ли способ обойти это?
Не возражаете, объясняя «3: ['7'], 4: ['7'], 5: ['7', '1'], 6: ['7': '1'], 7: [ '7', '1', '25'] '? – thefourtheye
Какова логика этого? Почему у вас есть, например, '5: ['7', '1']' в вашем ожидаемом выходе? – Marcin