Учитывая 2d список в python, как добавить только определенные значения в новый список? - PullRequest
0 голосов
/ 09 марта 2020

Допустим, у меня есть список:

lst = [[5,1,2,3],[2,3,4,5,7],[1,10,9,8,7]]

И у меня есть еще один список, который содержит индексы элементов, которые я хочу удалить из предыдущего списка:

indexes_to_del = [[0,2],[1,2],[1,3],[2,2]]

Чтобы мы получили следующий список:

new_lst = [[5,1,3],[2,3,7],[1,10,8,7]]

Какой самый эффективный способ сделать это?

Мое первоначальное ощущение, что использование del не будет самым эффективным способом, и я Нужно найти способ создать новый список и добавить к нему нужные значения.

Спасибо!

1 Ответ

3 голосов
/ 09 марта 2020

Вот один из возможных способов достижения этого с использованием понимания вложенного списка:

new_lst = [[e for j, e in enumerate(lst[i]) if [i, j] not in indexes_to_del] for i in range(len(lst))]

Вывод:

[[5, 1, 3], [2, 3, 7], [1, 10, 8, 7]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...