#python #list #loops #iteration
Вопрос:
У меня есть список, который выглядит так
[[6, 4, 163, 42],
[6, 44, 163, 79],
[6, 80, 163, 118],
[6, 119, 163, 156],
[6, 158, 163, 187],
[6, 192, 163, 225],
[6, 231, 163, 265],
[169, 4, 260, 42],
[169, 44, 260, 79],
[169, 80, 260, 118],
[169, 119, 260, 156],
[169, 158, 260, 187],
[169, 192, 260, 225],
[169, 231, 260, 265],
[273, 4, 385, 42],
[273, 44, 385, 79],
[273, 80, 385, 118],
[273, 119, 385, 156],
[273, 158, 385, 187],
[273, 192, 385, 225],
[273, 231, 385, 265]
Я пытаюсь разделить список каждый раз, когда меняется первый элемент дочернего списка
Я пытаюсь сделать так, чтобы список стал таким
[[[6, 4, 163, 42],
[6, 44, 163, 79],
[6, 80, 163, 118],
[6, 119, 163, 156],
[6, 158, 163, 187],
[6, 192, 163, 225],
[6, 231, 163, 265]],
[[169, 4, 260, 42],
[169, 44, 260, 79],
[169, 80, 260, 118],
[169, 119, 260, 156],
[169, 158, 260, 187],
[169, 192, 260, 225],
[169, 231, 260, 265]],
[[273, 4, 385, 42],
[273, 44, 385, 79],
[273, 80, 385, 118],
[273, 119, 385, 156],
[273, 158, 385, 187],
[273, 192, 385, 225],
[273, 231, 385, 265]]]
Я не уверен, как это сделать
Комментарии:
1. какой код вы написали?
2. Подсказка: Попробуйте настроить a
dict
с помощью ключей6
,167
, и273
, другими словами, элемента 0 каждого подсписка.
Ответ №1:
как насчет чего-нибудь вроде этого:
print([[i for i in lst if i[0] == k] for k in list(set([j[0] for j in lst]))])
где «lst» — это название вашего исходного списка
Комментарии:
1. однопользовательские линии тесны
2. Если предпочтительна однострочная вставка (в большинстве случаев считается нечитабельной), давайте выберем несколько хороших имен переменных: «print([[подсписка для подсписки в lst, если подсписка[0] == ключ] для ключа в списке(набор([подсписка[0] для подсписки в lst]))])