lista = [['Apertura','174830','Apertura - Home - Header_n','Variable (950x90)','AR','1','0','0.82','81','1.23',0.3,3],
['Apertura','174830','Apertura - Home - Header_n','Variable (950x90)','AR','1','0','0.82','81','1.23',0.25,5]
]
我需要比较列表中的所有项目。 在每个项目中,我们使用除最后两个项目以外的所有项目进行比较。 如果存在相同的项目,那么我们选择的是我们不想比较的最后一个项目中编号最少的项目
>>>['Apertura','174830','Apertura - Home - Header_n','Variable (950x90)','AR','1','0','0.82','81','1.23',0.3,3]
我使用了这种表格,但是知道我不能用它。
lista = [min(g, key=itemgetter(-2)) for _, g in groupby(lista, key=lambda s: s[:-2])]
答案 0 :(得分:1)
1 lista = [
2 [
3 'Apertura','174830','Apertura - Home - Header_n','Variable (950x90)',
4 'AR','1','0','0.82','81','1.23',0.3,3
5 ],
6 [
7 'Apertura','174830','Apertura - Home - Header_n','Variable (950x90)',
8 'AR','1','0','0.82','81','1.23',0.25,5
9 ]
10 ]
11
12 if lista[0][:-2] == lista[1][:-2]:
13 if lista[0][-1] < lista[1][-1]:
14 print(lista[0])
15 else:
16 print(lista[1])
输出
['Apertura', '174830', 'Apertura - Home - Header_n', 'Variable (950x90)', 'AR', '1', '0', '0.82', '81', '1.23', 0.3, 3]
如果我了解您的要求是正确的,我们可以将列表与倒数第二个项目进行比较吗?如果相等,则只需对最后一个项目进行比较?
答案 1 :(得分:0)
为什么不使用带key
而不是itertools.groupby
的排序:
print(sorted(lista,key=lambda x: x[-2]))
OR:
lista.sort(key=lambda x: x[-2])
print(lista)