首頁 > 軟體

六個Python程式設計最受用的內建函數使用詳解

2022-07-11 10:00:04

在日常的python程式設計中使用這幾個函數來簡化我們的程式設計工作,經常使用能使程式設計效率大大地提高。

1. Map 函數

map函數可以使用另外一個函數轉換整個可迭代物件的函數,包括將字串轉換為數位、數位的四捨五入等等。

之所以使用map函數來完成這些事情可以節約記憶體,使程式碼的執行速度提高,並且使用的程式碼量比較少。

比如這裡需要將一個字串的陣列轉換成數位的陣列的形式。

使用傳統的方式來進行解析的話,使用for迴圈的方式就需要好幾行的程式碼才能完成。

strings = ['1', '2', '3', '4']

res = []

for str_ in strings:
    res.append(int(str_))

print(res)

# [1, 2, 3, 4]

使用map函數直接需要一行程式碼就可以完成了。

strings = ['5', '6', '7', '8']

res_map = map(int, strings)

print(list(res_map))

# [5, 6, 7, 8]

使用map(int,strings),其中int是作為函數作為引數傳入的,而strings就是可以迭代的物件。

這裡再使用一個我們自己建立的函數來轉換可序列化的資料。

初始化一個make_super函數用來將英文字串轉換成'大寫'的字串。

def make_super(text):
    res_text = text.upper()

    return res_text


words = ['python', 'java', 'scala']

words_res = list(map(make_super, words))

print(words_res)


# ['PYTHON', 'JAVA', 'SCALA']

使用map(make_super, words),其中make_super是作為函數傳入的,而words作為可序列化資料。

2. Lamdba 函數

lambda 函數用於建立匿名函數,又被稱為lambda表示式。實際上它只是一個表示式的存在,如果在程式碼編寫過程中需要實現簡單的函數邏輯但是單獨寫一個函數又比較麻煩就可以使用lambda表示式只需要一行程式碼就可以完成了。

比如需要實現一個簡單的加法計算,使用基本的函數來實現需要建立一個add_1函數。

def add_1(a, b):
    return a + b

print(add_1(5, 2))

而使用lambda表示式,一行程式碼就可以直接完成了,可以像下面這樣寫。

add_2 = lambda a, b: a + b

print(add_2(10, 10))

lambda a,b: a + b 表示a,b是作為引數,a + b是作為函數的運算邏輯被執行。

3. Enumerate 函數

enumerate 函數一般用於可序列化資料的處理上面,而python中的可序列化資料又比較多,重要性就可想而知了。

可以使用該函數直接遍歷出一個可序列化資料的下標索引以及對應的資料。

使用一個列表資料來進行舉例說明。

words = ['java', 'python', 'scala']

使用enumerate函數來執行一下整個遍歷,最終返回一個新的列表。

for index, data in enumerate(words):
    print(f'當前索引:{index},當前資料:{data}')

# 當前索引:0,當前資料:java
# 當前索引:1,當前資料:python
# 當前索引:2,當前資料:scala

看到返回的結果中包含了索引、資料,這樣便於資料的組織和統計,因此,將該函數也列為比較常用的函數之一。

4. Reduce 函數

reduce函數通常用於計算整個列表的邏輯運算,也就是將一個函數的運算可以新增到這個列表的每個元素上面。

'''
reduce(function, iterable[, initializer])
'''

比如需要計算一個列表中每個元素之間的相乘的結果,則可以這樣寫。

from functools import reduce

list_ = [10, 20, 30, 40]

print(reduce(lambda a, b: a * b, list_))

這裡由於函數的邏輯運算比較簡單,所以使用了lambda表示式表示兩個元素相乘。

最終再使用reduce函數,它的效果相當於10 * 20 * 30 * 40,結果就是240000,和我們預想得到的計算結果是一致的。

5. Filter 函數

filter函數,從字面意思就可以看出它是過濾的意思,使用該函數可以有效的過濾掉不需要的列表中的資料元素。

'''
filter(function, iterable)
'''

在邏輯處理中,同樣是需要一個處理常式和一個可序列化的資料。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 20]

nums_new = filter(lambda m: m % 2 == 0, nums)

print(list(nums_new))

# [2, 4, 6, 8, 20]

這裡我們成功過濾掉了所有的奇數資料元素,最終只留下了偶數元素。

6. Zip 函數

zip函數在多個列表的組裝過程中用到非常的多,可以同時遍歷多個列表並將相同位置的元素組合成一個元祖。

list_res = []

for n in zip([1, 2, 3, 4, 5], ['python', 'java', 'scala', 'c++', 'C#']):

    list_res.append(n)

print(list_res)

# [(1, 'python'), (2, 'java'), (3, 'scala'), (4, 'c++'), (5, 'C#')]

使用zip函數時,像這樣的資料組合就可以輕鬆的實現。

通過觀察上述的這些操作發現基本上都是對可序列化的資料的相關操作,因為在python的編碼過程中大多數的資料處理相關的操作都是基於可序列化的資料的。

以上就是六個Python程式設計最受用的內建函數使用詳解的詳細內容,更多關於Python內建函數的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com