我的代码
b=[((1,1)),((1,2)),((2,1)),((2,2)),((1,3))]
for i in range(len(b)):
print 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)
如果两列都按照所需的输出显示进行排序会很好,但如果任何一个输出列都已排序就足够了。
答案 0 :(得分:1)
试试这个:b = sorted(b, key = lambda i: (i[0], i[1]))
答案 1 :(得分:0)
内置的sorted
可以做到这一点。
>>> 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减少到只有一个。
>>> b=[((1,1)),((1,2)),((2,1)),((2,2)),((1,3))]
>>> b
[(1, 1), (1, 2), (2, 1), (2, 2), (1, 3)]