Python內置函數及模塊總結

1.Python內置函數

abs()、delattr()、hash()、memoryview()、set()all()dict()、help()、min()、setattr()、any()、dir()、hex()、next()、slice()、ascii()、divmod()、id()、object()、sorted()、bin()、enumerate()input()、oct()、staticmethod()、bool()、eval()、int()、open()、str()、breakpoint()、exec()、isinstance()、ord()、sum()、bytearray()、filter()、issubclass()、pow()、super()、bytes()、float()、iter()、print()、tuple()、callable()、format()len()、property()、type()、chr()、frozenset()、list()range()、vars()、classmethod()、getattr()、locals()、repr()、zip()、compile()、globals()、map()reversed()import()、complex()、hasattr()、max()round()
(1)abs(x):求絕對值
(2)all(iterable):當iterable(可以爲列表等)全部爲真時返回True
(3)any(iterable):當iterable(可以爲列表等)有一個元素爲真時返回True
(4)divmod(a,b):返回商和餘數對(a//b, a%b)
(5)enumerate(iterable, start=0):返回序號和值。

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
>>>[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
>>>[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

(6)fiter(function, iterable)
(7)map(function, iterable):對iterable中的每個元素應用到function中。
(8)pow(base, exp[, mod]):base**exp
(9)round(number[, ndigits]):四捨五入
(10)set():set最大的特點是保證裏面的key不重複。set(a) & set(b):交集,set(a) | set(b):並集
(11)sorted(iterable, *, key=None, reverse=False):排序
(12)zip(*iterables):組合;*zip() means unzip。

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True

2.python內置模塊

(1)datetime
獲取當前日期和時間

from datetime import datetime
now = datetime.now()

獲取指定日期和時間

from datetime import datetime
dt = datetime(2015, 4, 19, 12, 20)

datetime轉換爲timestamp

from datetime import datetime
dt = datetime(2015, 4, 19, 12, 20)
dt.timestamp()

timestamp轉換爲datetime

from datetime import datetime
t = 1429417200.0
datetime.fromtimestamp(t)  # 轉換成本地時間
datetime.utcfromtimestamp(t) # 轉換成格林威治時間

str轉換爲datetime

from datetime import datetime
dt = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')

datetime轉換爲str

from datetime import datetime
now = datetime.now()
now.strftime('%a, %b %d %H:%M')

datetime加減

from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)
>>> now + timedelta(hours=10)
datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)
>>> now - timedelta(days=1)
datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)

(2)collections
collections是Python內建的集合模塊,提供集合類。
defaultdict
使用dict時,如果引用的Key不存在,就會拋出KeyError。如果希望key不存在時,返回一個默認值,就可以用defaultdict

>>> from collections import defaultdict
>>> dd = defaultdict(lambda: 'N/A')
>>> dd['key1'] = 'abc'
>>> dd['key1'] # key1存在
'abc'
>>> dd['key2'] # key2不存在,返回默認值
'N/A'

注意默認值是調用函數返回的,而函數在創建defaultdict對象時傳入。

除了在Key不存在時返回默認值,defaultdict的其他行爲跟dict是完全一樣的。
OrderedDict
使用dict時,Key是無序的。在對dict做迭代時,我們無法確定Key的順序。

如果要保持Key的順序,可以用OrderedDict

>>> from collections import OrderedDict
>>> d = dict([('a', 1), ('b', 2), ('c', 3)])
>>> d # dict的Key是無序的
{'a': 1, 'c': 3, 'b': 2}
>>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> od # OrderedDict的Key是有序的
OrderedDict([('a', 1), ('b', 2), ('c', 3)])

注意,OrderedDictKey會按照插入的順序排列,不是Key本身排序。
Counter
Counter是一個簡單的計數器。

>>> from collections import Counter
>>> c = Counter()
>>> for ch in 'programming':
...     c[ch] = c[ch] + 1
...
>>> c
Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
>>> c.update('hello') # 也可以一次性update
>>> c
Counter({'r': 2, 'o': 2, 'g': 2, 'm': 2, 'l': 2, 'p': 1, 'a': 1, 'i': 1, 'n': 1, 'h': 1, 'e': 1})

參考原文:https://www.liaoxuefeng.com/wiki/1016959663602400

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