Python 对列表的列表进行排序
Python Sorting a list of lists
我目前正在尝试对如下列表进行排序。我需要按照每个子列表中第二个元素的顺序对列表进行排序。
chars = [['Andrew', '1'], ['James', '12'], ['Sam', '123'], ['Zane', '2']]
我目前正在使用这个命令:
chars = sorted(chars, key=itemgetter(1))
我的理想输出是:
chars = [['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
需要先将第二个元素转化为整数进行排序:
>>> sorted(chars, key=lambda x: int(x[1]))
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
如果您想使用 operator.itemgetter
:
>>> sorted(chars, key=lambda x: int(itemgetter(1)(x)))
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
def myCmp(x, y):
if int(x[1])>int(y[1]):
return 1
else:
return -1
chars.sort(cmp=myCmp)#chars.sort(key=lambda x:int(x[1]))
print chars
输出:
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
也许可以帮到你。
我目前正在尝试对如下列表进行排序。我需要按照每个子列表中第二个元素的顺序对列表进行排序。
chars = [['Andrew', '1'], ['James', '12'], ['Sam', '123'], ['Zane', '2']]
我目前正在使用这个命令:
chars = sorted(chars, key=itemgetter(1))
我的理想输出是:
chars = [['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
需要先将第二个元素转化为整数进行排序:
>>> sorted(chars, key=lambda x: int(x[1]))
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
如果您想使用 operator.itemgetter
:
>>> sorted(chars, key=lambda x: int(itemgetter(1)(x)))
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
def myCmp(x, y):
if int(x[1])>int(y[1]):
return 1
else:
return -1
chars.sort(cmp=myCmp)#chars.sort(key=lambda x:int(x[1]))
print chars
输出:
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
也许可以帮到你。