赞
踩
需要对一个形如
lst = [['1', '2'], ['2', '1'], ['2', '2'], ['4', '4'], ['2', '4'], ['3', '3'], ['2', '5'], ['1', '1'], ['4', '10'], ['1', '3'], ['10', '10'], ['5', '10'], ['3', '5'], ['4', '6'], ['4', '1'], ['8', '8']]
的列表进行排序。要求子列表的排序是按照子列表中第一个元素和第二个元素的数值大小进行排序。
sorted() 可以对所有可迭代对象(iterable)进行排序, 排序后返回一个新的list,而不会修改该原来的对象。
sort() 会对以及存在的列表进行操作,没有返回值,而且只能作用于列表。
sorted 语法:
sorted(iterable, cmp=None, key=None, reverse=False)
iterable – 可迭代对象。
cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
所以解决的代码也十分简单
new_list = sorted(lst, key= lambda sub_lst:int(sub_lst[0])*100+int(sub_lst[1]))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。