Python 2.7 如何在python中对每个索引值有两个数字的列表进行排序?
我的代码Python 2.7 如何在python中对每个索引值有两个数字的列表进行排序?,python-2.7,sorting,Python 2.7,Sorting,我的代码 b=[((1,1)),((1,2)),((2,1)),((2,2)),((1,3))] 对于范围内的i(len(b)): 打印b[i] 获得的输出: (1,1) (1,2) (2,1) (2,2) (1,3) 如何按每个索引值中的第一个元素或/和第二个元素对该列表进行排序,以获得如下输出: (1,1) (1,2) (1,3) (2,1) (2,2) 或 (1,1) (2,1) (1,2) (2,2) (1,3) 如果两个列都按照所需输出中的显示进行排序,那就太好了,但是如果对其中任何
b=[((1,1)),((1,2)),((2,1)),((2,2)),((1,3))]
对于范围内的i(len(b)):
打印b[i]
获得的输出:(1,1)
(1,2)
(2,1)
(2,2)
(1,3) 如何按每个索引值中的第一个元素或/和第二个元素对该列表进行排序,以获得如下输出:
(1,1)
(1,2)
(1,3)
(2,1)
(2,2) 或 (1,1)
(2,1)
(1,2)
(2,2)
(1,3)
如果两个列都按照所需输出中的显示进行排序,那就太好了,但是如果对其中任何一个输出列进行排序,它就足够了。尝试以下操作:
b=sorted(b,key=lambda i:(i[0],i[1])
排序的内置程序会这样做
>>> sorted (b)
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2)]
这只按第一个元素排序,按第二个元素排序
>>> sorted(b, key=lambda i: i[1])
[(1, 1), (2, 1), (1, 2), (2, 2), (1, 3)]
还要注意Python不允许这个嵌套元组;paren中的paren被简化为一个paren
>>> b=[((1,1)),((1,2)),((2,1)),((2,2)),((1,3))]
>>> b
[(1, 1), (1, 2), (2, 1), (2, 2), (1, 3)]