1.列表推導(dǎo)式使用列表推導(dǎo)式創(chuàng)建一個列表,。
>>> [n*10 for n in range(5)][0, 10, 20, 30, 40] 2.交換變量一行代碼交換兩個變量的值,。
3.連續(xù)比較鏈式比較操作符。 >>> m, n = 3, 'c'>>> 1 < m < 5True>>> 'd' < n < 'f'False 4.序列切片通過切片快速獲取序列片段,。
5.切片快速增刪序列通過切片替換序列片段的值,。 >>> lst = [1, 2, 3, 4, 5]>>> lst[1:3] = []>>> lst[1, 4, 5]>>> lst[1:3] = ['a', 'b', 'c', 'd']>>> lst[1, 'a', 'b', 'c', 'd'] 6.%timeit 計算運行時間計算 10000 次列表推導(dǎo)式創(chuàng)建列表所用時間。
7.三元表達式獲取 m,,n 中較大的值,。 >>> m = 4>>> n = 2>>> if m > n: print('m')else: print('n')m>>> 'm' if m > n else 'n''m' 還有一種比較少見的寫法。
格式: (<on_true>, <on_false>)[condition] 8.解包(unpack)可迭代對象都支持解包,。 >>> a, b, *c = [1, 2, 3, 4]>>> a1>>> b2>>> c[3, 4]>>> print(*range(3))0 1 2 9.lambda 匿名函數(shù)lambda 函數(shù)可以接收任意多個參數(shù) (包括可選參數(shù)) ,返回單個表達式值。 lambda 函數(shù)不能包含命令,,只能包含一個表達式,。
10.map 序列映射對序列中每一個元素調(diào)用指定函數(shù),返回迭代器,。 >>> def func(x): return x ** 2>>> list(map(func, [1,2,3]))[1, 4, 9] 使用 lambda 表達式,。
11.filter 過濾序列過濾掉不符合條件的元素,返回迭代器,。 >>> def func(x): return x % 3 == 0 >>> list(filter(func, [1, 2 ,3]))[3] 使用 lambda 表達式,。
12.獲取序列組合獲取兩個序列每個元素兩兩組合的結(jié)果。 >>> list1 = ['a', 'b']>>> list2 = ['1', '2']>>> [(m, n) for m in list1 for n in list2][('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')]>>> from itertools import product>>> list(product(list1, list2))[('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')] 13.隨機選取序列元素隨機選取序列中的一個元素,。
隨機選取序列中的多個元素( 可重復(fù) ),。 k 值指定數(shù)量。 >>> from random import choices>>> lst = [1, 2, 3, 4]>>> choices(lst, k=3)[4, 3, 4] 隨機選取序列中的多個元素( 不重復(fù) ),。 k 值指定數(shù)量,。
14.序列元素計數(shù)統(tǒng)計序列每個元素出現(xiàn)的次數(shù)。 >>> from collections import Counter>>> s = 'python+py'>>> counter = Counter(s)>>> counterCounter({ 'p': 2, 'y': 2, 't': 1, 'h': 1, 'o': 1, 'n': 1, '+': 1}) 返回的結(jié)果類似字典,,可以使用字典的相關(guān)方法,。
統(tǒng)計出現(xiàn)次數(shù)最多的兩個元素。 >>> counter.most_common(2)[('p', 2), ('y', 2)] 15.字典排序字典按照鍵( key )降序排序,。
字典按照值( value )降序排序,。 >>> dic = { 'd': 2, 'c': 1, 'a': 3, 'b': 4}>>> sort_by_value = sorted(dic.items(), key=lambda x: x[1], reverse=False)>>> { key: value for key, value in sort_by_value}{ 'c': 1, 'd': 2, 'a': 3, 'b': 4} 16.字典合并
>>> dict1.update(dict2)>>> dict1{ 'name': '靜香', 'age': 18, 'sex': 'female'}
>>> dict(list(dict1.items()) + list(dict2.items())){ 'name': '靜香', 'age': 18, 'sex': 'female'}
>>> from collections import ChainMap>>> dict(ChainMap(dict2, dict1)){ 'name': '靜香', 'age': 18, 'sex': 'female'}
17.zip 打包zip() 將序列中對應(yīng)的元素打包成一個個的元組,,然后返回由這些元組組成的迭代器,。 如果序列的元素個數(shù)不一致,則返回列表長度與最短的對象相同,。 >>> list1 = [1, 2, 3]>>> list2 = [4, 5, 6]>>> list3 = ['a', 'b', 'c', 'd']>>> res = zip(list1, list2)>>> res<zip object at 0x0000013C13F62200>>>> list(res)[(1, 4), (2, 5), (3, 6)]>>> list(zip(list2, list3))[(4, 'a'), (5, 'b'), (6, 'c')] 18.enumerate 遍歷enumerate 函數(shù)可以將可迭代對象組合成一個索引序列,,這樣遍歷時就可以同時獲取索引與對應(yīng)的值。
19.any() & all()any(iterable) any all(iterable)
>>> any('')False>>> any([])False>>> any([1, 0, ''])True>>> any([0, '', []])False>>> all([])True>>> all([1, 0, ''])False>>> all([1, 2, 3])True 20.用 ** 代替 pow求 x 的 y 次方,,使用 ** 速度更快,。
|
|