Skip to main content
 首页 » 编程设计

python之如何根据元组中的值删除列表中的元组

2025年05月04日13java哥

我有一个元组列表。我想删除列表中元组中第 2 项和第 3 项是 bananas 和 1 的所有项。 for 循环不起作用,因为它在遍历列表时从列表中删除项目。不确定该怎么做?

my_table = [('苹果', '香蕉', 1), ('梨', '香蕉', 1), ('葡萄', '苹果', 2), ('苹果,' '梨', 2), ('苹果', '香蕉', 2), ('葡萄', '香蕉', 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) 

请您参考如下方法:

改用列表理解:

my_table = [elem for elem in my_table if elem[1:] != ('bananas', 1)] 

这将删除视为一项过滤工作;通过创建一个新列表来保留不应删除的所有内容。