python技巧分享(十五)

這是一個系列文章,主要分享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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章