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

聊聊Python中關(guān)于a=[[]]*3的反思

 更新時(shí)間:2021年06月02日 09:57:22   作者:zhongnanshu  
這篇文章主要介紹了Python中關(guān)于a=[[]]*3的反思,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python 關(guān)于a=[[]]*3的反思

之前用python做了一個(gè)關(guān)于交通大數(shù)據(jù)的項(xiàng)目,由于之前比較趕進(jìn)度,故現(xiàn)在會(huì)陸續(xù)更新對(duì)項(xiàng)目代碼的一些反思。

1、

由此可以看出,a[0],a[1],a[2]指向的是同一個(gè)元素,[[]]*3表示在a中開辟三份地址,且地址相同。

2、

重新對(duì)a[0]賦值,故a[0]地址改變

3、

對(duì)a[0][0]賦值,即改變a[0],a[1],a[2]指向的地址里的內(nèi)容

注: .append\+=\-=等都不會(huì)重新賦地址,=會(huì)重新賦地址 故而,下面兩條語句都會(huì)出現(xiàn)問題:


在上述278、280兩行的語句中,我都用到了[[]]*len(spts),所以只要其中某一個(gè)[]之后有.append或+=或其它不重新指向地址的行為,另外兩個(gè)元素也會(huì)跟著改變。

Python a, b = b, a +b [Python3常見問題]

閱讀文檔發(fā)現(xiàn)的。

>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
...     print(b)
...     a, b = b, a+b
...
1
1
2
3
5
8

他實(shí)際上就是:

c = a + b
a = b
b = c

其他應(yīng)用

1. 交換

a, b = 0, 1
a, b = b, a

評(píng)價(jià):省去了temp中間變量

2. 斐波那契

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

評(píng)價(jià):比起數(shù)組的,遞歸的,確實(shí)簡(jiǎn)潔

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論