Вы можете создать функцию, которая зацикливает основной список и получает элемент подсписка по индексу, который вы передаете ему.
def get_nested_elements_by_index(nested_list, index):
output_list = []
for sub_list in nested_list:
if len(sub_list) > index:
output_list.append(sub_list[index])
return output_list
nested = [
["nest1_A", "nest1_B", "nest1_C"],
["nest2_A", "nest2_B", "nest2_C"],
["nest3_A", "nest3_B", "nest3_C"],
]
print(
"First set:\n{first}\n\nSecond set:\n{second}\n\nThird set:\n{third}\n".format(
first="\n".join(get_nested_elements_by_index(nested, 0)),
second="\n".join(get_nested_elements_by_index(nested, 1)),
third="\n".join(get_nested_elements_by_index(nested, 2)),
)
)
Вы можете улучшить функцию, используя понимание списка следующим образом:
def get_nested_elements_by_index(nested_list, index):
return [sub_list[index] for sub_list in nested_list if len(sub_list) > index]
Что позволяет вам даже забыть о функции и использовать ее как есть.Например, для индекса 0
вы можете написать
...
first="\n".join(sub_list[0] for sub_list in nested_list),
...
(последний пример - это итератор внутри функции соединения, но он работает почти так же, как и списки)