0

我有以下列表,我需要从最大到最小的名称和数字对它们进行排序。

['joe:  5', 'ed:  9', 'joe:  7', 'ed:  8']

我有以下问题:

  1. 将数字从字符串转换为整数以对其进行排序。
  2. 使用正确的字符串对它们进行排序。

所以我的最终结果应该是这样的:

['ed:  9', 'ed:  8', 'joe:  7', 'joe:  5']
4

1 回答 1

5
>>> lis=['joe:  5', 'ed:  9', 'joe:  7', 'ed:  8']

>>> sorted(lis,key=lambda x:int(x.split()[-1]),reverse=True)
>>> ['ed:  9', 'ed:  8', 'joe:  7', 'joe:  5']

str.split您可以使用(如下所示)获取每个列表项中的整数,然后使用该整数对列表进行排序:

>>> int(lis[0].split(":")[1])
>>> 5

#or  

>>> int(lis[0].split()[1]) 
>>> 5
于 2013-01-15T20:04:15.073 回答