python高效程式設計技巧

2021-09-29 22:58:01 字數 3159 閱讀 6771

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 sample

s1 =

s1

d =

d

sample(序列a,n)

功能:從序列a中隨機抽取n個元素,並將n個元素生以list形式返回。

構造隨機序列如下:

data = [randint(0,20) for _ in range(20)]

方法1:可以使用字典來統計,以列表中的資料為鍵,以出現的次數為值

from random import randint

def 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中獲得的。下面我挑選出的這幾個技巧常常會被人們忽略,但它們在...