【发布时间】:2012-12-05 09:41:17
【问题描述】:
假设我有一个元组列表:
fruits = [('apple','red',23),
('apple','green',12),
('orange','small',12),
('orange','large',1)]
如何快速干净地创建一个新列表,其中包含具有最大数字但水果名称唯一的元组。所以理想的结果是:
fruits = [('apple','red',23),
('orange','small',12)]
我目前的方法是这样的:
def check_fruit(fruit, a_list):
for item in a_list:
if fruit[0] == item[0] and fruit[2] < item[2]:
return False
return True
filtered_list = [fruit for fruit in fruits if check_fruit(fruit, fruits)]
如果有更好的方法,请告诉我!谢谢。
【问题讨论】:
-
结果出现的顺序重要吗?
-
您的
fruits列表是否已按水果排序? -
是的,它已经按水果名称排序了,我希望结果按相同的顺序排列。
标签: python list filter filtering