繁体   English   中英

如何在python中对每个索引值有两个数字的列表进行排序?

[英]how to sort list in python which has two numbers per index value?

我的密码

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)

如果两列都按期望的输出显示进行排序,那将是很好的,但是无论输出列中的哪一个被排序,它都足够了。

试试这个: b = sorted(b, key = lambda i: (i[0], i[1]))

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不允许使用此嵌套元组; 括号内的括号减少为一个。

>>> b=[((1,1)),((1,2)),((2,1)),((2,2)),((1,3))]
>>> b
[(1, 1), (1, 2), (2, 1), (2, 2), (1, 3)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM