Python:按字母顺序对列表中的字母和数字进行排序
Python: Alphabetically sorting a list with letters and numbers in
我有一个列表
['2,alex', '5,james', '3,ben']
我需要按字母顺序排序。
输出应该是
['2,alex', '3,ben', '5,james']
但是使用 .sort
函数不起作用,只能按数字顺序排序。
您可以像下面那样给 list.sort()
一个密钥。如果你想按数字排序,你可以使用 str.split(',')[0]
来获取它,并将其转换为整数:
>>> l = ['2,alex', '5,james', '3,ben']
>>> l.sort(key=lambda x: int(x.split(',')[0]))
>>> l
['2,alex', '3,ben', '5,james']
如果您需要按名称而不是数字排序,只需使用相同的方法,但将 [0]
替换为 [1]
,并删除 int()
函数:
>>> l = ['2,alex', '5,james', '3,ben']
>>> l.sort(key=lambda x: x.split(',')[1])
>>> l
['2,alex', '3,ben', '5,james']
让我们看一个清楚的例子:
>>> sorted(l, key=lambda x: int(x.split(',')[0]))
['5,james', '10,ben', '22,alex']
>>> sorted(l, key=lambda x: x.split(',')[1])
['22,alex', '10,ben', '5,james']
我有一个列表
['2,alex', '5,james', '3,ben']
我需要按字母顺序排序。
输出应该是
['2,alex', '3,ben', '5,james']
但是使用 .sort
函数不起作用,只能按数字顺序排序。
您可以像下面那样给 list.sort()
一个密钥。如果你想按数字排序,你可以使用 str.split(',')[0]
来获取它,并将其转换为整数:
>>> l = ['2,alex', '5,james', '3,ben']
>>> l.sort(key=lambda x: int(x.split(',')[0]))
>>> l
['2,alex', '3,ben', '5,james']
如果您需要按名称而不是数字排序,只需使用相同的方法,但将 [0]
替换为 [1]
,并删除 int()
函数:
>>> l = ['2,alex', '5,james', '3,ben']
>>> l.sort(key=lambda x: x.split(',')[1])
>>> l
['2,alex', '3,ben', '5,james']
让我们看一个清楚的例子:
>>> sorted(l, key=lambda x: int(x.split(',')[0]))
['5,james', '10,ben', '22,alex']
>>> sorted(l, key=lambda x: x.split(',')[1])
['22,alex', '10,ben', '5,james']