我有以下代码:
# initialize
a = []
# create the table (name, age, job)
a.append(["Nick", 30, "Doctor"])
a.append(["John", 8, "Student"])
a.append(["Paul", 22, "Car Dealer"])
a.append(["Mark", 66, "Retired"])
# sort the table by age
import operator
a.sort(key=operator.itemgetter(1))
# print the table
print(a)
Run Code Online (Sandbox Code Playgroud)
它创建一个4x3表,然后按年龄对其进行排序.我的问题是,到底是key=operator.itemgetter(1)做什么的?该operator.itemgetter函数是否返回项目的值?为什么我不能只输入那样的东西key=a[x][1]?或者我可以吗?与运营商怎么能打印等形式的一定值3x2是22?
Python如何对表进行排序?我可以反向排序吗?
如何根据第一个年龄段的两列对其进行排序,然后如果年龄与b名称相同?
我怎么能不这样做operator?
如果我有两个并行列表,并希望按照第一个元素的顺序对它们进行排序,那么很容易:
>>> a = [2, 3, 1]
>>> b = [4, 6, 7]
>>> a, b = zip(*sorted(zip(a,b)))
>>> print a
(1, 2, 3)
>>> print b
(7, 4, 6)
Run Code Online (Sandbox Code Playgroud)
如何使用numpy数组而不将它们解压缩到传统的Python列表中呢?