将字符串转换为整数,然后在带有字符串的列表中对它们进行排序

时间:2013-01-15 20:01:47

标签: python

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

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

我遇到以下问题:

  1. 将数字从字符串转换为整数以对其进行排序。
  2. 使用正确的字符串对它们进行排序。
  3. 所以我的最终结果应该是:

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

1 个答案:

答案 0 :(得分: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
相关问题