Техника путешествия по словарюPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Техника путешествия по словарю

Сообщение Anonymous »

Имея словарь, в котором ключи содержат координаты, а значения содержат список возможных значений, как вывести список всех словарей, которые можно создать с одним значением, взятым из каждого списка?

Код: Выделить всё

input = {(0, 0): [1, 2], (0, 1): [3, 4]}

output = [{(0, 0): 1, (0, 1): 3}, {(0, 0): 1, (0, 1): 4}, {(0, 0): 2, (0, 1): 3}, {(0, 0): 2, (0, 1): 4}]
Примечание. Метод должен иметь возможность обрабатывать словарь со списками неравного размера и значениями None (случай, когда значения равны None, можно пропустить), например

Код: Выделить всё

{(0, 0): [1, 2], (0, 1): [3, 4], (1, 0): [5, 6, 7], (1, 1): None}
Эскиз цикла | может это не правильный подход?

Код: Выделить всё

def loop(input):
"""return a lits of dictionaries that store every coordinate/value pair among the dictionary of candidate values"""
# initialize a list to hold all the dictionaries
lst = []
# initialize dictionary to hold coordinate/value pairs
dct = {}
for key, values in input.items():
for v in values:
# what can I do here?
if key not in dct:
# check dct to enforce uniqueness?
kv = {key: v}
dct.update(kv)
if dct not in lst:
lst.append(dct)
return lst
loop(input)
# [{(0, 0): 1, (0, 1): 3}, {(0, 0): 1, (0, 1): 4}, {(0, 0): 2, (0, 1): 3}, {(0, 0): 2, (0, 1): 4}]
Кроме того, просматривая словарь, как мне убедиться, что я выбрал все комбинации? Как я могу выполнить приказ?

Подробнее здесь: https://stackoverflow.com/questions/790 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»