如何根據int在特定位置對元組列表進行排序? (沒有for循環)根據元素索引對python中的元組列表進行排序
例如。根據每個元組中的第三個元素對l = [(1,5,2),(7,1,4),(1,6,3)]
進行排序?
如何根據int在特定位置對元組列表進行排序? (沒有for循環)根據元素索引對python中的元組列表進行排序
例如。根據每個元組中的第三個元素對l = [(1,5,2),(7,1,4),(1,6,3)]
進行排序?
您可以使用list.sort
,其主要功能,operator.itemgetter
:
>>> from operator import itemgetter
>>> l = [(1,5,2),(7,1,4),(1,6,3)]
>>> l.sort(key=itemgetter(2))
>>> l
[(1, 5, 2), (1, 6, 3), (7, 1, 4)]
>>>
你也可以使用一個lambda function代替operator.itemgetter
:
>>> l = [(1,5,2),(7,1,4),(1,6,3)]
>>> l.sort(key=lambda x: x[2])
>>> l
[(1, 5, 2), (1, 6, 3), (7, 1, 4)]
>>>
然而,後者是generally faster。
您可以指定由密鑰使用sorted
內置排序列表:
>>> mylist = sorted([(1,5,2),(7,1,4),(1,6,3)], key = lambda t: t[2])
>>> mylist
[(1, 5, 2), (1, 6, 3), (7, 1, 4)]
>>>