如何在Python中排序元组?
可能重复的问题:
对包含元组的元组进行排序
我在对一个包含数字和字符串的元组进行排序时遇到了一些麻烦。最开始,我有一个这样的元组:
a=(("a",2),("b",2),("a",1))
那么我该如何将它排序成:先按数字排序,然后按字母排序呢?
a=(("a",1),("a",2),("b",2))
非常感谢你的帮助!
3 个回答
1
内置的函数 sorted 可以帮你完成这个任务。
3
元组是不能被排序的,因为它们是不可变的。你可以把元组转换成列表,先对列表进行排序,然后再把它转换回元组。大概是这样的,
mylist = sorted(a, key = lambda x: str(x[1])+str(x[0]))
a = tuple(mylist)
3
当然可以!请看下面的内容:
这个问题主要是关于如何在编程中处理某些特定的情况。很多时候,我们在写代码的时候,会遇到一些错误或者意外的结果。为了避免这些问题,我们需要了解一些基本的概念和技巧。
首先,了解你的代码是如何运行的非常重要。每一行代码都有它的作用,理解这些作用可以帮助你更好地调试和优化你的程序。
其次,使用一些工具来帮助你检查代码也是个好主意。比如,调试工具可以让你逐行查看代码的执行情况,这样你就能发现问题出在哪里了。
最后,记得多做练习。编程就像学习一门新语言,越多练习,你就会越熟练。不要害怕犯错,错误是学习过程中很正常的一部分。
希望这些简单的建议能帮助你更好地理解编程的世界!
>>> a=(("a",2),("b",2),("a",1))
>>> from operator import itemgetter
>>> sorted(a, key=itemgetter(1, 0))
[('a', 1), ('a', 2), ('b', 2)]