我在排序包含数字和字符串的元组时遇到了一些麻烦。 在一开始,我有一个像这样的元组:
a=(("a",2),("b",2),("a",1))
然后我如何将其排序为:(按数字排序,然后按字母顺序排列)
a=(("a",1),("a",2),("b",2))
非常感谢你的帮助!
答案 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将为您完成。