Python 如何检查嵌套列表中有多少个条目,然后删除每个条目最后3个以外的所有其他值?
我有一份水果清单:Python 如何检查嵌套列表中有多少个条目,然后删除每个条目最后3个以外的所有其他值?,python,list,nested-lists,sublist,Python,List,Nested Lists,Sublist,我有一份水果清单: fruit = [[['apples', '2'], ['apples', '7']], [['banana','5'], ['banana','6'], ['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]] 正如您在我的购物清单上所看到的,它是一个嵌套的清单,其中相同的项目在一个清单中分组在一起。我想做的是: 检查每个水果有多少
fruit = [[['apples', '2'], ['apples', '7']], [['banana','5'], ['banana','6'], ['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]]
正如您在我的购物清单上所看到的,它是一个嵌套的清单,其中相同的项目在一个清单中分组在一起。我想做的是:
水果[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
循环检查条目数,但我不知道如何删除列表中的内容
谢谢:)您可以将列表理解与
if
/else
语句结合使用,如下所示:
fruits = [[['apples', '2'], ['apples', '7']], [['banana','5'], ['banana','6'], ['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]]
answer = [fruit if len(fruit) <= 3 else fruit[-3:] for fruit in fruits]
print(answer)
您可以将列表理解与
if
/else
语句结合使用,如下所示:
fruits = [[['apples', '2'], ['apples', '7']], [['banana','5'], ['banana','6'], ['banana','3'], ['banana','9'], ['banana','1']], [['grapes','10'], ['grapes','0'], ['grapes','7']]]
answer = [fruit if len(fruit) <= 3 else fruit[-3:] for fruit in fruits]
print(answer)
循环浏览主列表,将每个项目列表替换为其最后三个对象(这对已短于或等于3个对象的列表没有任何作用): 或者,以理解形式:
fruit = [f[-3:] for f in fruit]
循环浏览主列表,将每个项目列表替换为其最后三个对象(这对已短于或等于3个对象的列表没有任何作用): 或者,以理解形式:
fruit = [f[-3:] for f in fruit]
我猜你想知道如何从列表中删除一个项目?尝试ls.remove(ls[i]),其中i是要删除的元素的索引,ls是列表。谢谢,但我认为我的问题是,我不知道如何同时执行这两个操作,并使它们按照我希望的方式工作。所以我猜你想知道如何从列表中删除一个项目?尝试ls.remove(ls[i]),其中i是要删除的元素的索引,ls是列表。谢谢,但我认为我的问题是,我不知道如何同时执行这两个操作,并使它们按照我希望的方式工作。