Python 一些函数的使用

本文深入探讨Python中sort和sorted函数的高级用法,包括原地排序与副本排序的区别,自定义排序规则的方法,以及如何利用itemgetter和enumerate函数进行高效数据处理。通过实例演示了如何对字典和列表进行复杂排序。

一、排序相关的一些函数
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值