如何在python中排序元组?

时间:2011-12-03 17:44:00

标签: python sorting tuples

  

可能重复:
  Sorting a tuple that contains tuples

我在排序包含数字和字符串的元组时遇到了一些麻烦。 在一开始,我有一个像这样的元组:

a=(("a",2),("b",2),("a",1))

然后我如何将其排序为:(按数字排序,然后按字母顺序排列)

a=(("a",1),("a",2),("b",2))

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:1)

无法按定义对元组进行排序,因为它们是不可变的。您可以将其转换为列表,对列表进行排序,然后转换回元组。像这样的东西,

mylist = sorted(a, key = lambda x: str(x[1])+str(x[0]))
a = tuple(mylist)

答案 1 :(得分:1)

>>> a=(("a",2),("b",2),("a",1))
>>> from operator import itemgetter
>>> sorted(a, key=itemgetter(1, 0))
[('a', 1), ('a', 2), ('b', 2)]

答案 2 :(得分:0)

内置函数sorted将为您完成。