如何根据每个元素中的数字对包含字符串元素的列表进行排序

2024-04-28 22:41:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我该如何排序这个列表

list1 = ['John, 35.60', 'Alf, 200.13', 'Greg, 62.76', 'Paul, 555', 'George, 123.6', 'Colin, 35.60', 'Phil, 23', 'Bret, 200.13']

加入这个名单

list2 = ['Phil, 23', 'John, 35.60', 'Colin, 35.60', 'Greg, 62.76', 'George, 123.6', 'Alf, 200.13', 'Bret, 200.13', 'Paul, 555']

基本上,我有一个列表,其中每个元素都像[customerName, orderPrice]。 我想做一个函数,它可以接受像list1这样的任何列表,并输出一个列表(list2),除了按orderPrice排序之外,其他元素都是相同的


Tags: 元素列表排序john名单colinlist2george
1条回答
网友
1楼 · 发布于 2024-04-28 22:41:19

^{}接受关键字key,您可以在其中输入函数;此函数的结果用于排序:

list1 = ['John, 35.60', 'Alf, 200.13', 'Greg, 62.76', 'Paul, 555', 
         'George, 123.6', 'Colin, 35.60', 'Phil, 23', 'Bret, 200.13']

srt = sorted(list1, key=lambda x: float(x.split(',')[1]))
print(srt)
# ['Phil, 23', 'John, 35.60', 'Colin, 35.60', 'Greg, 62.76', 
#  'George, 123.6', 'Alf, 200.13', 'Bret, 200.13', 'Paul, 555']

我使用的(nameless)函数在,处分割字符串,获取字符串的右侧部分并返回其中的float。你知道吗

相关问题 更多 >