我有一份水果 list :
fruit = [[['apples', '2'], ['apples', '7']], [['banana','5'], ['banana','6'], ['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]]
正如您在我的购物 list 上看到的那样,它是一个嵌套列表,其中相同的项目被分组在一个列表中。我想做的是:
- 检查每个水果有多少条目
- 如果水果的条目数为 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]
