python技巧分享(十五)
原文链接 http://reborncodinglife.com/2018/08/16/python-tricks-15/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。
1 lambda
#!/usr/bin/env python
# coding=utf8
add = lambda x, y : x + y
print add(1, 2)
# 3
print (lambda x, y: x + y)(2, 3)
# 5
lambda主要用于实现匿名函数,定义一些简短的、轻量级的函数,但是牺牲了一定的可读性。由示例中可以看到,这里通过lambda定义了一个add函数,lambda自动实现了return功能,add的调用方式和正常的函数一样。另外,lambda定义的函数可以不赋值给任何变量,直接就可以调用。
2 子类判断
#!/usr/bin/env python
# coding=utf8
class BaseClass:
pass
class SubClass(BaseClass):
pass
class OtherClass:
pass
print issubclass(SubClass, BaseClass)
# True
print issubclass(OtherClass, BaseClass)
# False
通过内置函数issubclass,可以判断一个类是否属于另外一个类的子类。由示例中可以看到,SubClass是BaseClass的子类,而OtherClass不是BaseClass的子类。
3 元素统计
#!/usr/bin/env python
# coding=utf8
import collections
l = 'abbcccdddd'
list_counter = collections.Counter(l)
print list_counter
# Counter({'d': 4, 'c': 3, 'b': 2, 'a': 1})
print list_counter.most_common(3)
# [('d', 4), ('c', 3), ('b', 2)]
借助collections模块,可以实现一个可迭代对象的计数功能。由示例中可以看到,这里分别计算出了列表l中每个字母出现的次数。通过调用most_common方法,还可以得到出现次数最多的前三个字母。详情请参考:https://docs.python.org/2/library/collections.html