如何根据第一个元素对以下内容进行排序?
list1 = [["Value313",1],["Value421",3],["Value234",2]]
最终,我应该得到以下内容:
list1 = [["Value234",2],["Value313",1],["Value421",3]]
答案 0 :(得分:8)
列表的默认排序顺序(按字典顺序)已经是你想要的了。
>>> list1 = [["Value313",1],["Value421",3],["Value234",2]]
>>> list1.sort()
>>> print list1
[['Value234', 2], ['Value313', 1], ['Value421', 3]]
答案 1 :(得分:4)
sorted(list1,key=lambda x : x[0])
[['Value234', 2], ['Value313', 1], ['Value421', 3]]
使用已排序并使用密钥lambda x[0]
,其中x[0]
是每个子列表中的第一个元素
或者排序以避免创建新列表:
list1 = [["Value313",1],["Value421",3],["Value234",2]]
list.sort(list1,key=lambda x : x[0])
print list1
[['Value234', 2], ['Value313', 1], ['Value421', 3]]
答案 2 :(得分:4)
要对list1
进行排序(不创建其他列表),请使用:
from operator import itemgetter
list1.sort(key=itemgetter(0))
如果您想创建另一个列表并保留list1
未排序的使用:
from operator import itemgetter
list2 = sorted(list1, key=itemgetter(0))
您可以使用lambda,但operator.itemgetter通常具有更好的性能,因为它处于C级别。