好Python列表,我可以很容易地在Python中使用此代碼沒有錯誤:不分配變量
>>>> a = range(5, 10)
>>>> b = range(15, 20)
>>>> a.extend(b)
>>>> a
[5, 6, 7, 8, 9, 15, 16, 17, 18, 19]
我也可以用這種方法,不使用b
:
>>>> a = range(5, 10)
>>>> a.extend(range(15, 20))
>>>> a
[5, 6, 7, 8, 9, 15, 16, 17, 18, 19]
但我可以」牛逼弄清楚爲什麼同樣的事情不會在這種情況下發生:
>>>> [5, 6, 7, 8, 9].extend(range(15, 20))
>>>>
是不是a
小號與上面的列表不一樣嗎?我只看到差異,我硬編碼的國家。我真的可以理解的是,雖然它不是一個變量或東西硬編碼的列表不能修改,但是......
>>>> [5, 6, 7, 8, 9][2]
7
這令我感到奇怪。什麼是更奇怪:
>>>> [5, 6, 7, 8, 7].count(7)
2
>>>> [5, 6, 7, 8, 7].index(8)
3
爲什麼一些列表方法上的硬編碼/不IN-A-變量列表的工作,而其他人可以嗎?
我並沒有真正使用這個,這更多的是個人的知識和對語言的理解,而不是實用性。
嗯我明白。是否有任何理由爲'a.extend(b)'除了擴展它外不返回結果列表?例如,我覺得使用'a = [5,6,7,8,9] .extend(範圍(15,20))'很有用。 – ranisalt
@ranisalt [5,6,7,8,9] +範圍(15,20)將做你想做的事 – sashkello
它不返回任何東西,因爲它是列表上的一個操作。當您執行'a.extend'時,您將元素附加到'a'。從概念上講,讓這個操作做兩件事會很糟糕 - 返回擴展列表並擴展傳遞的列表。 – sashkello