如何通过一个元组的列表解析和删除类似的? [关闭]

问题描述 投票:-2回答:2

我有一个像这样的元组的列表

tupleList = [('A',1), ('B',1), ('B',2), ('B',3), ('C',1)]

我希望能够通过这个列表解析,让有相同的字母任何的元组,然后用较大的数字删除的那些,只保留一个具有最小数,所以我的输出将是:

('A',1), ('B',1), ('C',1)
python list tuples
2个回答
1
投票

你可以通过第二个元素使用qazxsw POI到组的元组开始。

然后,为了保持最低值,每个组可以使用itertools.groupby,它允许您指定与您可以指定排序功能的min英寸在这种情况下,你可以使用key,它会发现在每一个元组的第二个元素中的最小值:

key = itemgetter(1)

产量

from itertools import groupby
from operator import itemgetter
tupleList = [('A',1), ('B',1), ('B',2), ('B',3), ('C',1)]

[min(v, key = itemgetter(1)) for k, v in groupby(tupleList, key = itemgetter(0))]

-4
投票

你基本上采取的每个元组在tupleList并将其与内─其他元组,如果他们有相同的字母,然后比较它们的值。取出一个用更大的价值:

[('A', 1), ('B', 1), ('C', 1)]
© www.soinside.com 2019 - 2024. All rights reserved.