python 中有很多內建函式幫你提高工作效率
工作中經常要處理各種各樣的資料,遇到專案趕進度的時候自己寫函式容易浪費時間
使用列表推導式:
result = [i for i in data if i >=0]
使用 fliter 過濾函式
result = fliter(lambda x:x >=0,data)
filter() 函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判,然後返回 true 或 false,最後將返回 true 的元素放到新列表中。
注意: pyhton2.7 返回列表,python3.x 返回迭代器物件,具體內容可以檢視:python3 filter() 函式
語法filter(function, iterable)
function – 判斷函式。
iterable – 可迭代物件
lambda函式又稱為匿名函式,匿名函式就是沒有函式名的函式。
lambda x,y:x+y
x,y是函式的兩個變數,位於冒號的左邊,冒號右邊的表示式是函式的返回值
d =
randint(number,number):隨機乙個範圍內的整數
dict_s.items():返回可遍歷的(鍵, 值) 元組陣列。
dict_s.keys():返回可遍歷的 鍵 元組陣列。
dict_s.value():返回可遍歷的 值 元組陣列。
使用zip函式
zip()函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表
from random import samples1 =
s1
d =d
sample(序列a,n)
功能:從序列a中隨機抽取n個元素,並將n個元素生以list形式返回。
構造隨機序列如下:
data = [randint(0,20) for _ in range(20)]
方法1:可以使用字典來統計,以列表中的資料為鍵,以出現的次數為值
from random import randintdef demo():
data = [randint(0,20) for _ in range(20)]
d = dict.fromkeys(data,0)
d
for v in range(10):d[v] += 1
return d
python 字典 fromkeys() 函式用於建立乙個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。
語法fromkeys()方法語法:
dict.fromkeys(seq[, value])
方法2:直接用conllections模組下的counter物件
在很多使用到dict和次數的場景下,python中用counter來實現會非常簡潔,效率也會很高
data = [randint(0,20) for _ in range(20)]data
[10, 7, 18, 2, 6, 2, 12, 18, 2, 11, 15, 1, 4, 15, 4, 9, 7, 14, 14, 11]
c2 = counter(data)#以字典形式返回列表中元素出現的個數c2counter()
c2.most_common(3) #統計頻率出現最高的3個數[(2, 3), (7, 2), (18, 2)]
依然用上面提到的counter來處理
total = re.split(』\w+』,text)#所有單詞的列表result = counter(total)
print(result.most_common(10))
比如班級中學生的數學成績以字典的形式儲存
請按數學成績從高到低進行排序
方法1:利用zip將字典轉化成元組,在用sorted進行排序
zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。
data = sorted(zip(data.values(), data.keys()))方法2:利用sorted函式的key引數
sorted(data.items(),key=lambda x:x[1])實際場景:在足球比賽中,統計每輪比賽都有進球的球員
模擬隨機的進球球員和進球數
s1 =s2 =
s3 =
首先獲取字典的keys,然後取每輪比賽key的交集。由於比賽輪次數是不定的,所以使用map來批量處理
map(dict.keys,[s1,s2,s3])
然後一直累積取其交集,使用reduce函式
reduce(lambda x,y:x&t, map(dict.keys [s1,s2,s3]))
map() 會根據提供的函式對指定序列做對映。
第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。
語法map() 函式語法:
map(function, iterable, …)
Python高效程式設計技巧
關鍵字 python 高效 程式設計 開源 原文 我已經使用python程式設計有多年了,即使今天我仍然驚奇於這種語言所能讓 表現出的整潔和對dry程式設計原則的適用。這些年來的經歷讓我學到了很多的小技巧和知識,大多數是通過閱讀很流行的開源軟體,如django,flask,requests中獲得的。...
python高效程式設計技巧
列表 ldata range 2,2 構造列表 a filter lambda x x 0,ldata filter函式 b x for x in ldata if x 0 列表解析 字典from random import randint ddata 構造字典 c 字典解析 集合sdata set...
Python高效程式設計技巧
我已經使用python程式設計有多年了,即使今天我仍然驚奇於這種語言所能讓 表現出的整潔和對dry程式設計原則的適用。這些年來的經歷讓我學到了很多的小技巧和知識,大多數是通過閱讀很流行的開源軟體,如django,flask,requests中獲得的。下面我挑選出的這幾個技巧常常會被人們忽略,但它們在...