[英]Sorting tuples with dynamic values and length
我正在尝试通过两个参数对数字元组进行排序:
例如,假设我们有以下四个元组:
a = (2, 5) # len(a) == 2
b = (2, 5, 3) # len(b) == 3
c = (2, 4, 3) # len(c) == 3
d = (1, 4, 4, 8) # len(d) == 4
我愿意获得的结果是一个函数,可以帮助我对这些元组进行排序,以便:
因此,上面的四个元组应列为[a,c,b,d]。
问题是:知道元组没有固定的长度,并且从第一个到最后一个,它们可能有任何不同的值,我该怎么做?
您可以使用...对元组进行排序。
res = sorted([a, b, c, d], key=lambda x: (len(x), x))
# [(2, 5), (2, 4, 3), (2, 5, 3), (1, 4, 4, 8)]
key是key
参数,它利用匿名( lambda
)函数。 Python按元素对元组进行排序。 因此,第一个元素len(x)
优先考虑元组的长度。 第二个元素x
赋予元组本身排序的次要重要性,它本身是逐个元素执行的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.