Python爬蟲、資料分析、網站開發等案例教程視頻免費在線觀看
https://space.bilibili.com/523606542
lambda
它們在其他語言中也被稱為匿名函式,如果你不想在程式中對一個函式使用兩次,你也許會想用lambda運算式,它們和普通的函式完全一樣,
lambda argument: manipulate(argument)
lambda 引數:操作(引數)
add = lambda x, y: x + y print(add(3, 5)) # Output: 8 a = [(1, 2), (4, 1), (9, 10), (13, -3)] def f(x): return x[1] # a.sort(key=f) a.sort(key=lambda x: x[1]) print(a) # Output: [(13, -3), (4, 1), (1, 2), (9, 10)]
sorted
sorted(iterable, *, key=None, reverse=False)
從 iterable 中的 item 中回傳一個新的排序串列,
有兩個可選引數,必須將其指定為關鍵字引數,
key 指定一個帶有一個引數的函式,用于從每個串列元素中提取比較鍵:key=str.lower,默認值是 None(直接比較元素),
reverse 是一個布林值,如果設定為 True,那么串列元素按照每個比較被顛倒的順序進行排序,
內置的 sorted() 函式排序是穩定的,如果確保不會更改比較相等的元素的相對順序,則排序是穩定的 ,
三元運算式
三元運算子通常在Python里被稱為條件運算式,這些運算式基于真(true)/假(false)的條件判斷.
它允許用簡單的一行快速判斷,而不是使用復雜的多行if陳述句, 這在大多數時候非常有用,而且可以使代碼簡單可維護,
# 如果條件為真,回傳真 否則回傳假 condition_is_true if condition else condition_is_false if condition: result = condition_is_true else: result = condition_is_false
map
map(function, iterable, ...)
回傳一個將 function 應用于每個 iterable item 的迭代器,從而產生結果,如果傳遞額外的 iterable 引數,function 必須采用多個引數并應用于并行所有迭代中的專案,使用多個迭代器時,當最短迭代器耗盡時,迭代器停止,
In [54]: list1 = [1, 2, 3, 4, 5, 6] In [55]: list2 = [4, 3, 7, 1, 9] In [56]: list(map(str, list1)) Out[56]: ['1', '2', '3', '4', '5', '6'] In [57]: list(map(lambda x, y: x+y, list1, list2)) Out[57]: [5, 5, 10, 5, 14]
enumerate
enumerate( iterable, start=0)
回傳一個列舉物件, iterable 必須是一個序列,一個迭代器或其他支持迭代的物件,由 enumerate() 回傳的迭代器的 __next__() 方法回傳一個元組,該元組包含一個計數(從 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')]
zip
zip(*iterables)
制作一個迭代器,用于聚合來自每個迭代器的元素,
回傳元組的迭代器,其中第 i 個元組包含來自每個引數序列或迭代的第 i 個元素,當最短的輸入迭代耗盡時,迭代器停止,使用單個迭代引數,它將回傳 1 元組的迭代器,沒有引數,它回傳一個空的迭代器,
與 * 運算子一起使用 zip() 可用于解壓縮串列:
>>> 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 data = zip(list1, list2) data = sorted(data) list1, list2 = map(lambda t: list(t), zip(*data))
filter
filter(function, iterable)
用那些 function 回傳 true 的 iterable 元素構造一個迭代器,iterable 可以是序列,支持迭代的容器或迭代器,如果 function 為 None,則假定標識函式為 false,即為 false 的所有元素都被洗掉,
# 過濾0-10之間的偶數 In [8]: list(filter(lambda x: x%2==0, range(10))) Out[8]: [0, 2, 4, 6, 8]
reduce
reduce函式的用法和map很類似,也是一個函式f和一個list,但是函式的入口引數一定要是兩個,reduce也是對每個元素進行反復呼叫,最后回傳最終的值,而map是回傳一個list
python3里面reduce已經從全域函式里面移除了,需要用的話要 from functools import reduce
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263670.html
標籤:其他
下一篇:java 流程控制學習

