按第二个元素对列表进行排序

18 浏览
0 Comments

按第二个元素对列表进行排序

这个问题已经有了答案:

如何根据对象的属性对对象列表进行排序?

我正在尝试对一个由名称和数字组成的列表进行排序,例如一个人的姓名和保龄球得分。我想按字母顺序和数字顺序对列表进行排序。我很难弄清楚如何对数字进行排序。列表看起来像这样:[\'\',\'Ann,40\',\'Jeff,250\',\'Zane,20\']。是否可以使用内置的排序功能对列表的第二个元素而不是第一个元素进行排序?

#Here is the code
l=['Ann, 40', 'Jeff, 250', 'Zane, 20']
l.sort(l[1])
for i in l:
    print(i)
#l.sort(l[1]) does not work

最终目标是显示

Jeff, 250
Ann, 40
Zane, 20

admin 更改状态以发布 2023年5月24日
0
0 Comments

将列表分割,并在将其转换为列表后按第二个元素进行排序

l=['Ann, 40', 'Jeff, 250', 'Zane, 20']
l.sort(key = lambda x: int(x.split()[1]), reverse=True)
for item in l:
    print(item)
#Jeff, 250
#Ann, 40
#Zane, 20

0
0 Comments

你可以使用一个关键函数来按照逆序排序,该函数通过,将每个输入字符串分割并将其转换为整数后返回第二个条目:

l.sort(key=lambda s: int(s.split(', ')[1]), reverse=True)

l变为:

['Jeff, 250', 'Ann, 40', 'Zane, 20']

0