欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3.8對可迭代解包的改進(jìn)及用法詳解

 更新時間:2019年10月15日 08:35:02   作者:小明明  
這篇文章主要介紹了Python3.8對可迭代解包的改進(jìn)及用法詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

Python 3 的可迭代解包

在 PEP 3132 - Extended Iterable Unpacking 里面描述了一種對可迭代對象的解包用法,Python 3 可用:

In : a, *b, c = range(5)
In : a, c
Out: (0, 4)
In : b
Out: [1, 2, 3]
In : *a, = range(5)
In : a
Out: [0, 1, 2, 3, 4]
In : for a, *b in [(1, 2, 3), (4, 5, 6, 7)]:
...:   print(b)
...:
[2, 3]
[5, 6, 7]

挺方便的,ES6 也有對應(yīng)的destructuring assignment語法實(shí)現(xiàn)解包數(shù)組,不過人家實(shí)現(xiàn)的更徹底,還可以解包對象。

不過在 Python 3.2 時引入了一個 BUG??匆粋€例子:

In : def a():
...:   rest = (4, 5, 6)
...:   t = 1, 2, 3, *rest
...:   return t
...:

In : for i in a():
...:   print(i)
...:

其實(shí)這是一個非常簡化的寫法,要不然需要把 1,2,3 放在一個元組中,再 + rest:

In : (1, 2, 3) + (3, 4, 5, 6)
Out: (1, 2, 3, 4, 5, 6)

但是上面這個例子稍微改一下:

In : def b():
...:   rest = (4, 5, 6)
...:   return 1, 2, 3, *rest
File "<ipython-input-38-b5a7115853e2>", line 3
 return 1, 2, 3, *rest
          ^
SyntaxError: invalid syntax

不用變量 t, 直接返回就會拋 SyntaxError,另外就是 yield (當(dāng)然要注意 return 和 yield 本身的意見不同啊):

In : def c():
...:   rest = (4, 5, 6)
...:   yield 1, 2, 3, *rest
File "<ipython-input-39-cf6991fcff64>", line 3
 yield 1, 2, 3, *rest
          ^
SyntaxError: invalid syntax
Python 3.8

在 Python 3.8,修復(fù)了這個問題:

>>> def b():
...   rest = (4, 5, 6)
...   return 1, 2, 3, *rest
...
>>> for i in b():
...   print(i)
...
>>> def c():
...   rest = (4, 5, 6)
...   yield 1, 2, 3, *rest
...
>>> for i in c():
...   print(i)
...
(1, 2, 3, 4, 5, 6)

你學(xué)到了么?

延伸閱讀

總結(jié)

以上所述是小編給大家介紹的Python3.8對可迭代解包的改進(jìn)及用法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • python 將列表中的字符串連接成一個長路徑的方法

    python 將列表中的字符串連接成一個長路徑的方法

    今天小編就為大家分享一篇python 將列表中的字符串連接成一個長路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python 使用office365郵箱的示例

    Python 使用office365郵箱的示例

    這篇文章主要介紹了Python 使用office365郵箱的示例,幫助大家利用python進(jìn)行高效辦公,感興趣的朋友可以了解下
    2020-10-10
  • python中的字符串內(nèi)部換行方法

    python中的字符串內(nèi)部換行方法

    今天小編就為大家分享一篇python中的字符串內(nèi)部換行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 淺析Python中的套接字編程

    淺析Python中的套接字編程

    不可否認(rèn),互聯(lián)網(wǎng)已成為“存在之魂”,其活動以“連接”或“網(wǎng)絡(luò)”為特征。使用套接字的最關(guān)鍵的基礎(chǔ)之一,使這些網(wǎng)絡(luò)成為可能。本文涵蓋了有關(guān)使用Python進(jìn)行套接字編程的所有領(lǐng)域。套接字可以幫助您建立這些連接,而Python無疑可以簡化連接
    2021-06-06
  • python多進(jìn)程日志以及分布式日志的實(shí)現(xiàn)方式

    python多進(jìn)程日志以及分布式日志的實(shí)現(xiàn)方式

    這篇文章主要介紹了python多進(jìn)程日志以及分布式日志的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 初學(xué)者學(xué)習(xí)Python好還是Java好

    初學(xué)者學(xué)習(xí)Python好還是Java好

    在本篇文章里小編給大家分享的是關(guān)于初學(xué)者學(xué)習(xí)Python好還是Java好的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • Python利用多線程同步鎖實(shí)現(xiàn)多窗口訂票系統(tǒng)(推薦)

    Python利用多線程同步鎖實(shí)現(xiàn)多窗口訂票系統(tǒng)(推薦)

    這篇文章主要介紹了Python利用多線程同步鎖實(shí)現(xiàn)多窗口訂票系統(tǒng),主要是利用threading.lock()通過實(shí)例代碼相結(jié)合給大家講解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • python運(yùn)行cmd命令行的3種方法總結(jié)

    python運(yùn)行cmd命令行的3種方法總結(jié)

    雖然python在調(diào)用cmd命令方面使用的比較少,不過還是要用的,下面這篇文章主要給大家介紹了關(guān)于python運(yùn)行cmd命令行的3種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Python 微信之獲取好友昵稱并制作wordcloud的實(shí)例

    Python 微信之獲取好友昵稱并制作wordcloud的實(shí)例

    今天小編就為大家分享一篇Python 微信之獲取好友昵稱并制作wordcloud的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python爬取股票信息,并可視化數(shù)據(jù)的示例

    Python爬取股票信息,并可視化數(shù)據(jù)的示例

    這篇文章主要介紹了Python爬取股票信息,并可視化數(shù)據(jù)的示例,幫助大家更好的理解和使用python爬蟲,感興趣的朋友可以了解下
    2020-09-09

最新評論