Есть ли какой-нибудь способ отредактировать любое количество списков внутри словаря?

#python #python-3.x #list #dictionary

#питон #python-3.x #Список #словарь

Вопрос:

Я пытаюсь создать словарь, в котором есть списки внутри него.Я создал переменную, чтобы сообщить python, сколько списков ему нужно создать в словаре. Вот код:

 dict = {}
for i in range(number_of_lists):
    dict[str(i)] = []
 

Этот код должен создать словарь, подобный этому:

* number_of_lists = 3

 {'0': [], '1': [], '2': []}
 

Затем мне нужно отредактировать списки в:

 {'0': [1, 2], '1': [2, 1], '2': [3, 2]}
 

Как я могу это сделать?

Также обратите внимание, что числа в списках просто случайны…

Комментарии:

1. dict['0']=[1,2] dict['1']=[2,1] и так далее…

2. Там нет последовательности. Просто случайные числа.

3. Возможно, вам потребуется описать проблему немного подробнее. Неясно, на чем именно вы застряли. Звучит так, будто вы просто спрашиваете: «Как мне добавить элементы в список?» в сочетании с вопросом «Как мне получить доступ к значениям dict?»

4. Зачем для этого использовать словарь? Список списков упростил бы работу. Даже инициализация была бы проще: lists = [[]] * number_of_lists . Также обратите внимание, что dict это зарезервированное слово.

5. Какое правило гласит, какие числа должны быть внутри каждого списка?

Ответ №1:

Вы можете просто перебирать список ключей и значений, чтобы сделать ваш общий словарь таким.

 def get_dict(keys, values):

    dct = {}
    for idx, key in enumerate(keys):
        dct[key] = values[idx]
    return dct

print(get_dict(['0', '1', '2'], [[1, 2], [2, 1],  [3, 2]]))
#{'0': [1, 2], '1': [2, 1], '2': [3, 2]}
print(get_dict(['K', 'E', 'Y'], [[1, 2], [2, 1],  [3, 2]]))
#{'K': [1, 2], 'E': [2, 1], 'Y': [3, 2]}
 

Комментарии:

1. Это именно то, чего я ожидаю! Спасибо!

2. Отлично! Рад быть полезным!

Ответ №2:

Пожалуйста, попробуйте, другие команды списка использовались таким же образом

 dict = {}
for i in range(number_of_lists):
    dict[str(i)] = []

a = 1
dict['name_of_list'].append(a)

print(dict)
 

Ответ №3:

Что вы подразумеваете под случайным? Просто любое число или в определенном диапазоне?

 from random import randint

dict = {}
number_of_lists = 4
for i in range(number_of_lists):
    dict[str(i)] = [randint(0, x 1) for x in range(0,i 1)]