python 模块学习 — operator.itemgetter

今天群里有个哥们提了一个问题,当时我也是脑子空空的 不知道怎么做,时间长不用就会忘 没办法回过头看看python列表排序吧

问:

>>> a[['aa', 34], ['bb', 45], ['cc', 12], ['dd', 234]]怎么排序能生成这样的[['dd', 234],['bb', 45],['aa', 34],['cc', 12]]

答: 首先创建一个列表 列表由元组组成 像这样 [(‘aa’, 34), (‘bb’, 45), (‘cc’, 12), (‘dd’, 234)]

b = []for i in range(len(a)):    b.append(tuple(a[i]))>>>b[('aa', 34), ('bb', 45), ('cc', 12), ('dd', 234)]

方法一:# 然后使用sorted来进行排序 使用元组的第1个元素来排序

>>> sorted(b,key=lambda tup:tup[1])[('cc', 12), ('aa', 34), ('bb', 45), ('dd', 234)] >>> sorted(b,key=lambda tup:tup[1],reverse=1)   // 使用reverse来进行逆序排列[('dd', 234), ('bb', 45), ('aa', 34), ('cc', 12)]

方法二:(使用itemgetter方法可以减少代码量 语法也比较清晰)

from operator  import itemgetter>>> sorted(b,key=itemgetter(1))   // 对元组的第一个元素进行排列[('cc', 12), ('aa', 34), ('bb', 45), ('dd', 234)] >>>  sorted(b,key=itemgetter(1),reverse=1) // 反向排序[('dd', 234), ('bb', 45), ('aa', 34), ('cc', 12)]
python 模块学习 — operator.itemgetter

相关文章:

你感兴趣的文章:

标签云: