Как удалить элемент из списка, когда элементы списка являются списками - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть список списков:

[['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]

Если бы я хотел удалить элемент списка, в котором было 'Ari', как мне удалить весь этот элемент, чтобы все, что я оставил, это:

[['Fran', 'female', 'skilled']]

На данный момент я пытаюсь это:

for item in list:
    if 'Ari' in item:
        # Delete item...

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

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

>>> original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
>>> original = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]

Это создаст new list и затем связать новый список с переменной original.Если исходный список большой, вы можете избежать создания дубликата и обновления на месте:

original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
original[:] = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]

Обратите внимание на использование обозначения среза ([:]) для обновления исходного списка на месте.

0 голосов
/ 26 февраля 2019

Используйте понимание списка и проверьте для 'Ari':

print([i for i in list if not 'Ari' in i])

Или немного другой порядок ключевых слов:

print([i for i in list if 'Ari' not in i])

Вывод:

[['Fran', 'female', 'skilled']]

Нотакже не называйте списки list, так как это переопределит фактическое ключевое слово.

...