Python - Словарь

В python у меня есть dict, как показано ниже

{'key1': [L1, L2],
 'key2': [P1, P2],
 'key3': [T1],
 'key4': [V1]}

Желаемый результат

{'key1': [L1], 'key2': [P1], 'key3': [T1], 'key4': [V1]},
{'key1': [L2], 'key2': [P2], 'key3': [T1], 'key4': [V1]}

Любая помощь!

6
nl ja de
что вы пробовали?
добавлено автор nneonneo, источник
print "{'key1': [L1], 'key2': [P1], 'key3': [T1], 'key4': [V1]}, \ n {'key1': [L2], 'key2' : [P2], 'key3': [T1], 'key4': [V1]} "соответствует вашим заявленным критериям. Не могли бы вы быть более ясными в своем вопросе?
добавлено автор Robᵩ, источник

3 ответы

In [1]: d = {'key1': ['L1', 'L2'],  
 'key2': ['P1', 'P2'],
 'key3': ['T1'],
 'key4': ['V1']}

In [2]: [{k: [v[min(i, len(v)-1)]] for k, v in d.items()}
     for i in range(max(map(len, d.values())))]
Out[2]: 
[{'key1': ['L1'], 'key2': ['P1'], 'key3': ['T1'], 'key4': ['V1']},
 {'key1': ['L2'], 'key2': ['P2'], 'key3': ['T1'], 'key4': ['V1']}]
1
добавлено
>>> # Let's suppose your dictionary looks something like
>>> some_dict = {'key1': ['L1', 'L2'],
 'key2': ['P1', 'P2'],
 'key3': ['T1'],
 'key4': ['V1']}
>>> #First determine the longest value sequence
>>> max_len = len(max(some_dict.values(), key = len))
>>> #assimilate your tools
>>> from itertools import izip, cycle, islice
>>> #Create the value sequence
>>> value = islice(izip(*(cycle(e) for e in some_dict.values())), max_len)
>>> #recreate the dictionary
>>> [dict(izip(some_dict.keys(), e)) for e in value]
[{'key3': 'T1', 'key2': 'P1', 'key1': 'L1', 'key4': 'V1'}, {'key3': 'T1', 'key2': 'P2', 'key1': 'L2', 'key4': 'V1'}]
>>> 

Note, in case the order matters, use an OrderedDict instead of the built-in dict.

1
добавлено

Это не совсем то, что вы хотели, потому что я не уверен, почему вам понадобится копия ['T1'] или ['V1'] еще раз:

d = {'key1': ['L1', 'L2'],
 'key2': ['P1', 'P2'],
 'key3': ['T1'],
 'key4': ['V1']}
print [{key:d[key][i] for key in d.keys() for i in range(len(d[key]))}, {key:d[key][i] for key in d.keys() for i in range(len(d[key])-1)}]

Результаты в:

[{'key3': 'T1', 'key2': 'P2', 'key1': 'L2', 'key4': 'V1'}, {'key2': 'P1', 'key1': 'L1'}]
0
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community