#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)]