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
,直接使用list.append
:
>>> ditance = [] ##declare my array
>>> distance.append([0,1,2,3.5,4.2])
>>> distance
[[0, 1, 2, 3.5, 4.2]]