Я хочу удалить список кортежей в python. У меня есть список поКак удалить элементы из списка кортежей?
l = [('name','sam'),('age', 20),('sex', 'male')]
и другой список кортежей
r = [('name','sam'),('age', 20)]
я пытаюсь удалить те элементы, которые в r
и l
обоих. Я делаю это:
for item in l:
if item in r:
del item
Но элементы не удаляются. Выход ничего и при печати измененный список:
>>> l
Затем первоначальный список печати.
[('name','sam'),('age', 20),('sex', 'male')]
Пожалуйста, помогите мне, как я могу удалить элементы из списка кортежей.
Причиной наблюдаемого поведения является то, что с помощью 'for item in l' вы создаете (временную) ссылку на каждый элемент списка и' del', чтобы эта ссылка не касалась самого списка.Также всегда сложно попытаться изменить список, который вы зацикливаете с помощью цикла 'for'. – PeterE