Python的 – 如何按每个列表中的第四个元素sorting列表的列表?

我想通过每个单独列表中的第四个元素(整数)对以下列表进行sorting。

unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']] 

我怎样才能做到这一点? 谢谢!

 unsorted_list.sort(key=lambda x: x[3]) 

sorted()以下方式使用sorted()key

 >>> unsorted_list = [['a','b','c','5','d'],['e','f','g','3','h'],['i','j','k','4','m']] >>> sorted(unsorted_list, key = lambda x: int(x[3])) [['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']] 

lambda返回每个内部列表的第四个元素, sorted函数使用它来对这些列表进行sorting。 这假定int(elem)不会失败的列表。

或者使用itemgetter (正如Ashwini的评论所指出的那样,如果你有数字的string表示,这个方法将不起作用,因为它们必然会在某处失去2位数的数字)

 >>> from operator import itemgetter >>> sorted(unsorted_list, key = itemgetter(3)) [['e', 'f', 'g', '3', 'h'], ['i', 'j', 'k', '4', 'm'], ['a', 'b', 'c', '5', 'd']]