У меня есть список со списками, и я хотел бы удалить элемент, соответствующий подстановочному знаку, из каждого списка, если он присутствует, в противном случае вернуть его как есть.
Пример
nested_list = [["abc","fds","gfssdf"],["dfsdf","cds","dvc"],["dsaf","abcvs","ewq"],...]
Я пытался сделать следующее:
for x in nested_list:
for y in x:
if re.search('abc.+', y) in x:
nested_list.remove(x)
Однако он возвращает тот же список без каких-либо изменений
Мой желаемый результат:
nested_list = [["fds","gfssdf"],["dfsdf","cds","dvc"],["dsaf","ewq"],...]
Есть ли решение?
Решение проблемы
Вот один из способов сделать это с помощью понимания вложенного 2D-списка:
nested_list = [["abc","fds","gfssdf"],["dfsdf","cds","dvc"],["dsaf","abcvs","ewq"]]
output = [[y for y in x if not re.search(r'^abc', y)] for x in nested_list]
print(output) # [['fds', 'gfssdf'], ['dfsdf', 'cds', 'dvc'], ['dsaf', 'ewq']]
Комментариев нет:
Отправить комментарий