最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python高級特性與幾種函數的講解

 更新時間:2019年03月08日 14:20:48   作者:沙沙羅曼  
今天小編就為大家分享一篇關于Python高級特性與幾種函數的講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

切片

從list或tuple中取部分元素。

list = [1, 2, 3, 4]
list[0 : 3] # [1, 2, 3]
list[-2 : -1] # -1表示最后一個,[3, 4]
list[1 :: 2] # index = 1開始,每兩個取一個[2, 4]
list[:] # 復制list,[1, 2, 3, 4]
# 針對tuple,切片同樣適用

iterable、iterator

可迭代,迭代器,集合類型數據可迭代但不是迭代器,可通過iter()轉變?yōu)榈鳌?/p>

可迭代對象可使用for-in語句遍歷,判斷x是否可迭代:isinstance(x, Iterable)。

列表生產式

高效創(chuàng)建列表,見代碼示例:

# range轉list
list(range(1, 5)) # [1, 2, 3, 4]
[x * x for x in range(1, 5)] # [1, 4, 9, 16]
[x * x for x in range(1, 5) if x % 2 == 0] # [4, 16]
[m + n for m in 'ABC' for n in 'XYZ'] # ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
[s.lower() for s in ['Hello', 'World', 'IBM', 'Apple']] # like map

generator

isinstance(generator, Iterable) = True,可使用for-in語句,或者使用next方法。

g = (x * x for x in range(10))
next(g) # 0
next(g) # 1
next(g) # 4
for item in g:
  print(item) # 9 16 ... 81

generator函數

generator函數本質是一個有狀態(tài)的函數,遇到y(tǒng)ield語句時會暫時返回。

# 有yield語句,表明時generator函數
def gen_fn():
  init = 0
  while init < 10:
    yield init
    init += 1
  return 'done'
call = gen_fn() # 獲得可迭代對象call
next(call) # 0
next(call) # 1
# 每次調用generator函數,得到的是一個新的generator
# for-in無法獲得generator的返回值'done'
for item in gen_fn():
  print(item) # 0 1 ... 9

高階函數

參數是函數的函數即是高階函數,可對比數學概念:g(x) = f(x) + 1,g(x)即高階函數。

  • map
# map(func, *iterables, ...)
i = map(lambda x : x * x, [1, 2, 3]) # 返回Iterator
list(i) # [1, 4, 9]
  • reduce
from functools import reduce
reduce(lambda previous, x : previous + x, [1, 2, 3, 4]) # 10
  • filter
i = filter(lambda x : x % 2 == True, [1, 2, 3, 4])
list(i) # [1, 3]
  • sorted 默認升序,通過key參數決定排序規(guī)則。
sorted([1,3,2], key = lambda x : -x) # [3, 2, 1]

返回函數做回函數返回值

閉包概念:包含環(huán)境成分(自由變量)和控制成分的實體(lambda表達式,函數)。

def lazy_sum(*args):
  ax = 0
  def sum():
    nonlocal ax
    for n in args:
      ax = ax + n
    return ax
  return sum
fn = lazy_sum(1, 2, 3)  # ax + sum構成了閉包
fn() # 6
fn() # 12

匿名函數

即lambda表達式。

裝飾器

函數包函數的語法糖?

def log(fn):
  def call(*args, **kw):
    print('call %s():' % fn.__name__)
    return fn(*args, **kw)
  return call
# @log的作用等同now = log(now)
@log
def now():
  print('2018-03-18')
now() # call now(): 2018-03-18

偏函數

把一個函數的某些參數給固定住,返回一個新的函數。類似柯里化,但更強大?

from functools import partial
binary_int = partial(int, base = 2)
binary_int('1000000') # 64

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • 對python pandas中 inplace 參數的理解

    對python pandas中 inplace 參數的理解

    這篇文章主要介紹了對python pandas中 inplace 參數的理解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 淺談tensorflow語義分割api的使用(deeplab訓練cityscapes)

    淺談tensorflow語義分割api的使用(deeplab訓練cityscapes)

    這篇文章主要介紹了淺談tensorflow語義分割api的使用(deeplab訓練cityscapes),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python網絡爬蟲精解之正則表達式的使用說明

    python網絡爬蟲精解之正則表達式的使用說明

    正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯
    2021-09-09
  • Python 遍歷循環(huán)詳細

    Python 遍歷循環(huán)詳細

    這篇文章主要介紹的是Python 遍歷循環(huán),遍歷循環(huán)可理解為從遍歷結構中逐一提取元素,放在循環(huán)變量中,對于所提取的每個元素執(zhí)行一次語句塊。由保留字for和in組成,完整遍歷所有元素后結束每次循環(huán),所獲得元素放入循環(huán)變量,并執(zhí)行一次語句塊,下面就來看文章介紹
    2021-10-10
  • django框架之cookie/session的使用示例(小結)

    django框架之cookie/session的使用示例(小結)

    這篇文章主要介紹了django框架之cookie/session的使用示例(小結),詳細的介紹了cookie和session技術的接口獲取等問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • python列表中刪除重復元素的三種方法

    python列表中刪除重復元素的三種方法

    本文主要介紹了python列表中刪除重復元素的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • Python選擇網卡發(fā)包及接收數據包

    Python選擇網卡發(fā)包及接收數據包

    今天小編就為大家分享一篇關于Python選擇網卡發(fā)包及接收數據包,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 用Python生成器實現微線程編程的教程

    用Python生成器實現微線程編程的教程

    這篇文章主要介紹了用Python生成器實現微線程編程的教程,本文來自于IBM官方開發(fā)者技術文檔,需要的朋友可以參考下
    2015-04-04
  • keras導入weights方式

    keras導入weights方式

    這篇文章主要介紹了keras導入weights方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 終端命令查看TensorFlow版本號及路徑的方法

    終端命令查看TensorFlow版本號及路徑的方法

    今天小編就為大家分享一篇終端命令查看TensorFlow版本號及路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論

东乡族自治县| 手游| 池州市| 伊金霍洛旗| 资中县| 深水埗区| 宝应县| 南安市| 丽水市| 阳山县| 丰都县| 张家港市| 崇州市| 长兴县| 浏阳市| 赤壁市| 兴国县| 忻州市| 甘肃省| 奇台县| 北流市| 新兴县| 睢宁县| 泾阳县| 上虞市| 澳门| 基隆市| 黄平县| 固镇县| 景东| 遂川县| 双江| 济源市| 基隆市| 蒙城县| 东城区| 井冈山市| 达拉特旗| 西畴县| 星子县| 荔波县|