我如何对此列表进行排序
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
答案 0 :(得分:5)
sort
接受关键字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']
我使用的(无名)函数将你的字符串拆分为,
,取字符串的右边部分并返回它的float
。