使用list.extend
不list.append
:
extend
和append
之間的區別是,append
追加傳遞給它,因爲它是對象。而extend
期望傳遞給它的項目是一個可迭代的(列表,元組,字符串等)並將其項目追加到列表中。
使用append
我們可以追加任何類型的對象;即可迭代或不可迭代。
>>> lis = [1,2,3]
>>> lis.append(4) #non-iterable
>>> lis.append('foo') #iterable
>>> lis
[1, 2, 3, 4, 'foo']
但extend
的行爲有所不同,實際上追加從迭代到列表中的各個項目。
>>> lis = [1,2,3]
>>> lis.extend('foo') #string is an iterable in python
>>> lis
[1, 2, 3, 'f', 'o', 'o'] #extend appends individual characters to the list
>>> lis.extend([7,8,9]) #same thing happend here
>>> lis
[1, 2, 3, 'f', 'o', 'o', 7, 8, 9]
>>> lis.extend(4) #an integer is an not iterable so you'll get an error
TypeError: 'int' object is not iterable
代碼
>>> distance = [[]]
>>> distance[-1].extend ([0,1,2,3.5,4.2])
>>> distance
[[0, 1, 2, 3.5, 4.2]]
這將返回:
[[0, 1, 2, 3.5, 4.2]]
如果你想這樣做,那麼就沒有必要append
空[]
,然後調用list.extend
,只需使用即可直接:
>>> ditance = [] ##declare my array
>>> distance.append([0,1,2,3.5,4.2])
>>> distance
[[0, 1, 2, 3.5, 4.2]]
謝謝你,非常有幫助! – fghajhe
@fghajhe我已經添加了一些解釋,你可能會發現有幫助。 –