help on method_descriptor:
>>> help(list.extend) # 往通過新增迭代物件來擴充列表
help on method_descriptor:
extend(...)
>>>
>>> a = ["a", "b"]
>>> a
['a', 'b']
>>> a = ["a", "b"]
>>> a
['a', 'b', ['c', 'd']]
>>> a = ["a", "b"]
>>> a
['a', 'b', range(0, 10)]
>>> a = [1, 2]
>>> class a:
... pass
>>> def b():
... pass
>>> a
[1, 2, , ]
# 往列表a,擴充乙個列表物件
>>> a = ["a", "b"]
>>> a.extend(["c", "d"])
>>> a
['a', 'b', 'c', 'd']
# 往列表a,擴充乙個迭代物件range(4)
>>> a = ["a", "b"]
>>> a.extend(range(4))
>>> a
['a', 'b', 0, 1, 2, 3]
# 往列表a,擴充乙個迭代物件"abcd"
>>> a = [1, 2]
>>> a.extend("abcd")
>>> a
[1, 2, 'a', 'b', 'c', 'd']
再來看往extend後新增單獨元素會報錯,因為單獨元素是不可迭代的。
>>> a = ["a", "b"]
>>> a.extend(1)
traceback (most recent call last):
file "", line 1, in typeerror: 'int' object is not iterable
'int' object is not iterable
extend往後擴充的物件,是拿後面可迭代的所有元素往裡面新增
# +=操作
>>> a = ["a", "b"]
>>> b = ["c", "d"]
>>> a += b
>>> a
['a', 'b', 'c', 'd']
# +操作
>>> a = ["a", "b"]
>>> b = ["c", "d"]
>>> a = a + b
>>> a
['a', 'b', 'c', 'd']
從上面的例子能看看出無論是+還是+=,都只能在列表之間操作
>>> a = ["a", "b"]
>>> b = 1
>>> a += b
traceback (most recent call last):
file "", line 1, in typeerror: 'int' object is not iterable
'int' object is not iterable
>>> a = a + b
traceback (most recent call last):
file "", line 1, in typeerror: can only concatenate list (not "int") to list
can only concatenate list (not "int") to list
>>> a + range(10)
traceback (most recent call last):
file "", line 1, in typeerror: can only concatenate list (not "range") to list
can only concatenate list (not "range") to list
>>>
綜合上面的示例及報錯,來總結+,+=:
# 執行extend後,a的id不變
>>> a = [1, 2]
>>> b = [3, 4]
>>> id(a)
61099656
>>> a.extend(b)
>>> a
[1, 2, 3, 4]
>>> id(a)
61099656
>>> a = [1, 2]
>>> b = [3, 4]
>>> id(a)
65986184
>>> a
[1, 2, [3, 4]]
>>> id(a)
65986184
# 執行+=後,a的id不變
>>> a = [1, 2]
>>> b = [3, 4]
>>> id(a)
63943112
>>> a += b
>>> a
[1, 2, 3, 4]
>>> id(a)
63943112
# 執行+後,a的id發生變化
>>> a = [1, 2]
>>> b = [3, 4]
>>> id(a)
61026568
>>> a = a + b
>>> a
[1, 2, 3, 4]
>>> id(a)
61026952
從上面的id來看,似乎又可總結出:
執行+,會拷貝出乙個新的物件,會引起id的變化
如果執行+操作,一旦操作物件很多的話,經常需要拷貝新物件,效能是四者中最差的
python大列表 Python中的列表
python社群的理想就是建立一款乾淨,簡單,完美的語言.學習了兩三天,真的感覺python的一切設計,都是為了解決曾經讓程式設計師感覺痛苦的問題.看到python的列表,再想想曾經的學習過的陣列.我的天,這不是我一直苦苦尋找的東西嗎?由於列表和以前學習過的陣列有很大的差異性,在此做了一些筆記,留作...
Python中的列表
1 idle缺省內置函式都是紫色,字串是綠色,關鍵字 如if 是橙色,生成的所有結果為藍色 2 python的變數識別符號沒有型別!但是識別符號指示的資料物件有型別。3 python列表可以包含各種型別的資料,也就是說在同乙個列表中,可以同時有字串和數字 4 for迴圈 可以實現迭代 for 目標識...
python中的列表
python的列表 first列表的建立 way1 利用符號 來建立列表。way2 通過list函式將其他型別的序列轉換為列表。1,2,3,4 1,2,3,4 tup 1,2,3,4,5 tup list tup tup 1,2,3,4,5 second列表的修改 單個元素的修改 索引找到元素重新賦...