Создание функции для удаления определенных элементов из вложенного списка - PullRequest
0 голосов
/ 06 ноября 2019

Учитывая вложенный список, такой как [['N', 'L'], ['G', 'N', 'L'], ['N', 'B']], я хочу удалитьвсе вхождения ['N', 'L']. Для этого я написал следующий код:

def eliminate_elements(my_list, to_eliminate):
    '''
    To complete.
    '''



Когда я запускаю eliminate_elements([['N', 'L'], ['G', 'N','L'], ['N', 'B']], ['N','L']), я хочу, чтобы вывод был [[],['G'], ['B']], хотя вместо этого удаляется только 'N', а мой вывод [['L'], ['G', 'L'], ['B']] Почему «L» не удаляется, когда он явно является элементом to_eliminate? Обратите внимание, что я не хочу, чтобы встроенные функции Python делали это, я должен создать свою собственную функцию, которая не зависит от каких-либо внешних модулей или функций.

1 Ответ

0 голосов
/ 06 ноября 2019
# your code goes here

def eliminate_elements(my_list, to_eliminate):
    '''
    To complete.
    '''

    for sub_list in my_list:
        for i in to_eliminate:
            if i in sub_list:
                occu = sub_list.count(i)
                for _ in range(occu):
                    sub_list.remove(i)

    return my_list  

print(eliminate_elements( [['N', 'L'], ['G', 'N', 'L'], ['N', 'B']],  ['N', 'L']))

выход

[[], ['G'], ['B']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...