一、排序相关的一些函数
1、sort以及sorted函数
对List排序,两个方法:
(1)用List的成员函数sort进行排序,在原地排序,改变了原有的序列
(2)用build-in函数sorted进行排序,保留原有序列,返回一个副本
这两个函数的使用和C++一样稍有些复杂,可以自定义排序规则(按什么排序)(通过lambda或者函数来实现这一点),下面给出几个例子:
>>> k={'A':1,'B':5,'C':2}
>>> sorted(k.iteritems(),key=operator.itemgetter(1),reverse=True)
[('B', 5), ('C', 2), ('A', 1)]
// k是一个字典,用iteritems()生成迭代器,key=operator.itemgetter(1)指定用第二个元素排序,reverse=True说明使用逆序方式排列
2、operator.itemgetter()
operator模块提供的itemgetter函数用于获取对象的某些维的数据,伧俗为序号
import operator
>>> a=[1,2,3]
>>> b=operator.itemgetter(1) //定义函数b,用于获取对象下标为1的元素的值
>>> b(a) //注意b是一个函数
2
3、enumerate()
用于将一个可历遍的数据对象(如列表、元组)组合为一个索引序列,同时返回下标和数据。
>>> a=['zhao', 'yuan', 'liang']
>>> list(enumerate(a))
[(0, 'zhao'), (1, 'yuan'), (2, 'liang')]
>>> for num,str in enumerate(a):
... print(num)
... print(str)
...
0
zhao
1
yuan
2
liang