如何使用每个元素内的数字对字符串元素进行排序

时间:2018-03-24 12:15:08

标签: python arrays python-3.x list sorting

我如何对此列表进行排序

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

排序

1 个答案:

答案 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