gpt4 book ai didi

Python:如何按最常见的第一个元素对列表列表进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:50 24 4
gpt4 key购买 nike

如何根据第一个元素的数量对列表列表进行排序?例如,如果下面有以下列表,我希望对列表进行排序,以便所有“佐治亚大学”条目排在第一位,然后是“密歇根大学”条目,然后是“佛罗里达大学”条目。

l = [['University of Michigan','James Jones','phd'],
['University of Georgia','Anne Greene','ba'],
['University of Michigan','Frank Kimball','ma'],
['University of Florida','Nate Franklin','ms'],
['University of Georgia','Sara Dean','ms'],
['University of Georgia','Beth Johnson','bs']]

最佳答案

from collections import Counter
c = Counter(item[0] for item in l)
print sorted(l, key = lambda x: -c[x[0]])

输出

[['University of Georgia', 'Anne   Greene', 'ba'],
['University of Georgia', 'Sara Dean', 'ms'],
['University of Georgia', 'Beth Johnson', 'bs'],
['University of Michigan', 'James Jones', 'phd'],
['University of Michigan', 'Frank Kimball', 'ma'],
['University of Florida', 'Nate Franklin', 'ms']]

普通字典版本:

c = {}
for item in l:
c[item[0]] = c.get(item[0], 0) + 1
print sorted(l, key = lambda x: -c[x[0]])

defaultdict 版本:

from collections import defaultdict
c = defaultdict(int)
for item in l:
c[item[0]] += 1
print sorted(l, key = lambda x: -c[x[0]])

关于Python:如何按最常见的第一个元素对列表列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com