0
点赞
收藏
分享

微信扫一扫

Python 常用函数 三

reduce

其实,reduce在pyhton3.x中已经不再是内置函数了,而是放到了functools中。但是,有些时候可以很方便你做一些事情,这让你感觉这很Python

reduce函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

语法

from functools import reduce
reduce(function, iterable[, initializer])

参数

function 函数,有两个参数

iterable 可迭代对象

initializer 可选 初始参数

返回函数计算结果

案例:假如一个列表中每个元素是字典,亲他们的公共键。

from functools import reduce

l = [{1: 'a', 2: 'b'}, {2: 'a', 3: 'b'}]
reduce(lambda x, y: x.keys() & y.keys(), l)

如果你不知道里面有多少一个元素使用reduce是一个较好的选择。否则,你的代码量将有点麻烦,或者你可以转变一下思路想到一个好的算法。

sorted

sorted 函数对所有可迭代的对象进行排序操作。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

语法

sorted(iterable, cmp=None, key=None, reverse=False)
  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。它可以是一个函数lambda是一个非常好的选择
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

返回重新排序的列表

具体案例可以参照以前的博客

property

property函数的作用是在新式类中返回属性值。也就是说你可以通过访问属性的方式访问方法。

class property([fget[, fset[, fdel[, doc]]]])
  • fget -- 获取属性值的函数
  • fset -- 设置属性值的函数
  • fdel -- 删除属性值函数
  • doc -- 属性描述信息

返回新式类属性

实例

class C(object):
    def __init__(self):
        self._x = None
 
    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x
 
    @x.setter
    def x(self, value):
        self._x = value
 
    @x.deleter
    def x(self):
        del self._x

如果 cC 的实例化, c.x 将触发 getter,c.x = value 将触发 setter , del c.x 触发 deleter。

如果给定 doc 参数,其将成为这个属性值的 docstring,否则 property 函数就会复制 fget 函数的 docstring(如果有的话)

举报

相关推荐

0 条评论