在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 關(guān)于Python列表和元組的問題?

關(guān)于Python列表和元組的問題?

偶然看到類似于這樣的代碼:

l = []
for i in range(10):
    l += i,

剛看到這段代碼的時(shí)候很好奇,難道還可以這樣寫?

后來反應(yīng)過來 i, 相當(dāng)于一個(gè)元組 (i,)

但是列表可以和元組相加嗎?

我進(jìn)行了這樣的測試:

>>> l = [0]
>>> t = (1,)
>>> l + t
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "tuple") to list
>>> l += t
>>> l
[0, 1]
>>>

所以, 為什么 + 會出錯, 而 += 沒有問題呢?

回答
編輯回答
不舍棄

https://docs.python.org/2/lib...

l + t 對應(yīng)的是 l.__add__(t) ,而 l += t 對應(yīng)的是 l.__iadd__(t) ,實(shí)現(xiàn)可以是不同的。

另外,你偶然看到的那段代碼,如果不是用來說明 __iadd__ 或者講解其它語法層面的東西,而是業(yè)務(wù)系統(tǒng)中用的話,就是坨屎。

2018年2月21日 14:24