python代码高效经验

  • map(function(),iterable):任何一个可迭代(iterable)对象(例如list,tuple等)的每一个元素执行一次function().返回一个的list,非常方便。
  • filter(function(),iterable):同map类似,用来得到符合function()的元素组成的新list
  • reduce(function(),iterable) :reduce可以实现阶乘的功能。每次从序列取两个元素,输入function()得到的值在和序列中下一个元素作为function()输入,如此迭代,python3版本reduce()需要用from functools import reduce 导入
#求5的阶乘
>>> from functools import reduce
>>> reduce(lambda x,y:x*y,range(1,6))
120
  • lambda 不多说太常用了
  • a,b=b,a 比java转化方便太多了
  • any(),all()检验可迭代对象(list,tuple等)有没有空,0或者false元素
  • {i:i^2 for i in range() if i%2==0} ,idx2word={v:k for k,v in word2idx.items()}这种python写法可读性更强
  • ipython技巧:
    1.在变量的前面或后面加上问号(?)就可以将有关该对象的一些通用信息显示出来。
    2.%magic——用来显示所有魔术命令的详细文档。%time和%timeit——用来测试代码执行时间。
  • 用in/not in 判断某个元素是否在list中,很方便
  • collections.defaultdict() 函数可以当健不存在时实例化一个值作为默认值,但这种形式的默认值只有在通过dict[key]或者dict.getitem(key)访问才行用in判断会失去效果。
  • yield用于大量文件读取,如果直接对文件对象调用 read() 方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。通过 yield,我们不再需要编写读文件的迭代类,就可以轻松实现文件读取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值