Я пытаюсь разобраться в понимании вложенного списка и прочитал превосходное объяснение здесь .
Проблема, которую я имею при переводе, заключается в том, что у меня есть if
предложение в моем внутреннем цикле, и я не вижу, как применить это к шагу func()
, поскольку я теряю счетчик, который я получаю от enumerate()
, когда я перехожу из вложенных циклов в список для понимания.
nested_list = [[{'a': 1, 'b': 2}, {'c': 3, 'd': 4}], [{'a': 5, 'b': 6}, {'c': 7, 'd': 8}]]
new_list = []
for c, x in enumerate(nested_list):
for d, y in enumerate(x):
if d == 1:
new_list.append(y)
print(new_list)
[{'c': 3, 'd': 4}, {'c': 7, 'd': 8}]
Понимание вложенного списка может выглядеть примерно так:
new_list = [if ??? y
for x in nested_list
for y in x]
... но я не могу понять / подумать, как получить предложение, так как у меня нет счетчика при понимании вложенного списка.
Есть ли способ достичь этого или я должен придерживаться подхода с вложенными циклами?