튜플리스트가 있습니다. 튜플의 두 번째 및 세 번째 항목이 bananas
및 1
인 목록의 모든 항목을 제거하고 싶습니다. for 루프는 반복 할 때 목록에서 항목을 제거하므로 작동하지 않습니다. 이것에 대해 어떻게 생각해?튜플의 값을 기반으로 목록에서 튜플을 삭제하는 방법은 무엇입니까?
my_table = [('apples', 'bananas', 1), ('pears', 'bananas', 1), ('grapes', 'apple', 2), ('apples,' 'pears', 2), ('apples', 'bananas', 2), ('grapes', 'bananas', 2)]
>>> printTable(my_table)
('apples', 'bananas', 1)
('pears', 'bananas', 1)
('grapes', 'apple', 2)
('apples,pears', 2)
('apples', 'bananas', 2)
('grapes', 'bananas', 2)
>>> for item, row in enumerate(my_table):
if row[1] == 'bananas' and row[2] == 1:
print item, row
0 ('pears', 'bananas', 1)
5 ('apples', 'bananas', 1)
6 ('grapes', 'bananas', 1)
>>> for item, row in enumerate(my_table):
if row[1] == 'bananas' and row[2] == 1:
my_table.remove(row)
>>> printTable(my_table)
('pears', 'bananas', 1)
('grapes', 'apple', 2)
('apples,pears', 2)
('apples', 'bananas', 2)
이 일을 정확하고 파이썬 방법입니다 * 새 * 목록을 생성 주목해야한다. 원래 목록은 변경되지 않았습니다. –
@StevenRumbalski : 더 명확하게하기위한 답을 확장했습니다. –