99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2019-02-18 閱讀量: 702
Python 2 和 Python 3 列表推導(dǎo)的區(qū)別

Python 2 和 Python 3 列表推導(dǎo)的區(qū)別

測試了一個列表推導(dǎo),在 Python 3 中無法運行,啥原因?

# python2  
matrix = [[1,2,3],[4,5,6],[7,8,9]]
[x for row in matrix for x in row]
# 值是 [1, 2, 3, 4, 5, 6, 7, 8, 9]
[x for x in row for row in matrix]
# 值是 [7, 7, 7, 8, 8, 8, 9, 9, 9]

# python3  
matrix = [[1,2,3],[4,5,6],[7,8,9]]
[x for row in matrix for x in row]
# 值是 [1, 2, 3, 4, 5, 6, 7, 8, 9]
[x for x in row for row in matrix]
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# NameError: name 'row' is not defined

答:python2和python3列表推導(dǎo)的作用域有區(qū)別

在python2中先運行了[x for row in matrix for x in row] 內(nèi)存中已經(jīng)有row 因此會有結(jié)果,但是python3中優(yōu)化了這個問題,所以會報錯

25.7508
3
關(guān)注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子