這是一個(gè)系列文章,主要分享python的使用建議和技巧柠辞,每次分享3點(diǎn),希望你能有所收獲醉箕。
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主要用于實(shí)現(xiàn)匿名函數(shù)钾腺,定義一些簡(jiǎn)短的、輕量級(jí)的函數(shù)讥裤,但是犧牲了一定的可讀性放棒。由示例中可以看到,這里通過(guò)lambda定義了一個(gè)add函數(shù)己英,lambda自動(dòng)實(shí)現(xiàn)了return功能间螟,add的調(diào)用方式和正常的函數(shù)一樣。另外损肛,lambda定義的函數(shù)可以不賦值給任何變量厢破,直接就可以調(diào)用。
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
通過(guò)內(nèi)置函數(shù)issubclass治拿,可以判斷一個(gè)類是否屬于另外一個(gè)類的子類摩泪。由示例中可以看到,SubClass是BaseClass的子類劫谅,而OtherClass不是BaseClass的子類见坑。
3 元素統(tǒng)計(jì)
#!/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模塊,可以實(shí)現(xiàn)一個(gè)可迭代對(duì)象的計(jì)數(shù)功能捏检。由示例中可以看到荞驴,這里分別計(jì)算出了列表l中每個(gè)字母出現(xiàn)的次數(shù)。通過(guò)調(diào)用most_common方法贯城,還可以得到出現(xiàn)次數(shù)最多的前三個(gè)字母熊楼。詳情請(qǐng)參考:https://docs.python.org/2/library/collections.html