У меня есть словарь dict1['a'] = [ [1,2], [3,4] ]
и вам нужно сгенерировать список из него как l1 = [2, 4]
. То есть, список из второго элемента каждого внутреннего списка. Это может быть отдельный список, или даже словарь может быть изменен как dict1['a'] = [2,4]
.Создание списка из сложного словаря
ответ
Если предположить, что каждое значение в словаре список пар, то это должно сделать это для вас:
[pair[1] for pairlist in dict1.values() for pair in pairlist]
Как вы можете видеть:
dict1.values()
получает вас только значение в вашем Словаре,for pairlist in dict1.values()
получает вас все списки пара,for pair in pairlist
получает вас все пары в каждом из этих списков,- и
pair[1]
получает вас второе значение в каждой паре.
Попробуйте. Python оболочка является вашим другом ...
>>> dict1 = {}
>>> dict1['a'] = [[1,2], [3,4]]
>>> dict1['b'] = [[5, 6], [42, 69], [220, 284]]
>>>
>>> dict1.values()
[[[1, 2], [3, 4]], [[5, 6], [42, 69], [220, 284]]]
>>>
>>> [pairlist for pairlist in dict1.values()]
[[[1, 2], [3, 4]], [[5, 6], [42, 69], [220, 284]]]
>>> # No real difference here, but we can refer to each list now.
>>>
>>> [pair for pairlist in dict1.values() for pair in pairlist]
[[1, 2], [3, 4], [5, 6], [42, 69], [220, 284]]
>>>
>>> # Finally...
>>> [pair[1] for pairlist in dict1.values() for pair in pairlist]
[2, 4, 6, 69, 284]
В то время как я на него, я просто скажу: ipython любит вас!
Учитывая список:
>>> lst = [ [1,2], [3,4] ]
Вы можете извлечь второй элемент каждого подсписка с простым списком понимания:
>>> [x[1] for x in lst]
[2, 4]
Если вы хотите сделать это для каждого значения в словаре, вы можете перебирать словарь. Я не уверен, что именно вы хотите, чтобы ваши окончательные данные выглядеть, но что-то как это может помочь:
>>> dict1 = {}
>>> dict1['a'] = [ [1,2], [3,4] ]
>>> [(k, [x[1] for x in v]) for k, v in dict1.items()]
[('a', [2, 4])]
dict.items()
возвращается (ключ, значение) пар из словаря, в виде списка. Таким образом, этот код будет извлекать каждый ключ в вашем словаре и связывать его с списком, сгенерированным, как указано выше.
список из второго элемента каждый внутренний список
это звучит как [sl[1] for sl in dict1['a']]
- так в чем вопрос -!)
- 1. Создание словаря из списка
- 2. Создание списка из словаря
- 3. Создание словаря из списка
- 4. Создание словаря из списка списков
- 5. Создание словаря из списка строк
- 6. Создание списка объектов из словаря
- 7. Создание списка объектов из словаря
- 8. Создание словаря из списка строк (создание ключей из элементов списка)
- 9. Создание списка словаря
- 10. Получение уникального и упорядоченного списка из сложного словаря
- 11. Создание вложенного словаря из вложенного списка
- 12. Создание словаря частот из списка кортежей
- 13. Создание списка из конкретных элементов словаря
- 14. Создание CSV файл из словаря списка кортежей
- 15. Создание словаря из объединения списка в Python
- 16. Создание словаря из списка кортежей, неправильный вывод
- 17. Создание словаря с определенными элементами из списка
- 18. Создание вложенного словаря из списка кортежей
- 19. Regex: создание словаря из списка строк
- 20. C# - Создание списка из существующего словаря
- 21. питона 2.7: создание словаря из списка наборов
- 22. основе шаблона словаря создание из списка списков
- 23. Создание словаря из строки внутри списка?
- 24. Python - Создание словаря (дерево) из списка кортежей
- 25. Создание словаря из вложенного списка с использованием понимания словаря
- 26. понимание сложного словаря
- 27. Сортировка сложного словаря
- 28. Странная сумма, выходящая из сложного словаря
- 29. Создание сложного пустого списка или фрейма данных
- 30. Создание представления из сложного выбора
И в Python 3 можно было бы это сделать и в понимании dict, если предпочтительнее был результат словаря: {k: [x [1] для x в v] для k, v в dict1.items()} – Anon