Skip to main content
 首页 » 编程设计

python之如何检查嵌套列表中有多少条目,然后删除每个项目的最后 3 个值以外的所有其他值

2025年05月04日29kerrycode

我有一份水果 list :

fruit = [[['apples', '2'], ['apples', '7']], [['banana','5'], ['banana','6'], ['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]] 

正如您在我的购物 list 上看到的那样,它是一个嵌套列表,其中相同的项目被分组在一个列表中。我想做的是:

  1. 检查每个水果有多少条目
  2. 如果水果的条目数为 3 个或更少,则保持原样
  3. 如果水果的条目数超过 3,则删除该水果的条目(从该水果的 fruit[x][0] 开始)直到水果的最后三个条目保持。例如,这将对上述列表的 'banana' 执行,因为 'banana' 的条目数为 5,因此前两个条目 (['banana','5'], ['banana','6']) 将被删除并且 ['banana','3'], ['banana','9 '], ['banana','1'] 将保留。

如果正确完成,生成的代码将是:

fruit = [[['apples', '2'], ['apples', '7']], [['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]] 

我该怎么做?我尝试使用 for 循环检查条目数,但我不知道如何删除列表中的内容。

谢谢:)

请您参考如下方法:

遍历主列表,用它的最后三个对象替换每个项目列表(这对已经短于或等于 3 个对象的列表没有任何作用):

for i in range(len(fruit)): 
    fruit[i] = fruit[i][-3:] 

或者,以理解形式:

fruit = [f[-3:] for f in fruit]