将列表中的最后一个元素替换为另一个列表

时间:2012-07-09 10:56:09

标签: python

例如,我有两个数组array1array2

array1 = ['A', 'B', 'C', 'D', 'E', 'F',]
array2 = ['G', 'H', 'I',]`

现在我希望输出为

array1 = ['A', 'B', 'C', 'D', 'E', 'G', 'H', 'I',]

我如何在python

中执行此操作

4 个答案:

答案 0 :(得分:17)

>>> array1 = ['A', 'B', 'C', 'D', 'E', 'F']
>>> array2 = ['G', 'H', 'I']
>>> array1 = array1[:-1] + array2
>>> array1
['A', 'B', 'C', 'D', 'E', 'G', 'H', 'I']

答案 1 :(得分:16)

要替换python列表的某些部分,可以使用切片分配:

>>> array1 = ['A', 'B', 'C', 'D', 'E', 'F']
>>> array2 = ['G', 'H', 'I']
>>> array1[-1:] = array2
>>> array1
['A', 'B', 'C', 'D', 'E', 'G', 'H', 'I']

您可以使用切片分配来替换列表的任何部分,包括插入不替换现有元素的列表:

>>> array1[0:0] = ['1st', '2nd']
>>> array1
['1st', '2nd', 'A', 'B', 'C', 'D', 'E', 'G', 'H', 'I']

此处[0:0]切片选择array1的空白部分,并用新元素“替换”它。

答案 2 :(得分:0)

链接数组时,使用itertools可能很有用:

import itertools
array1 = itertools.chain(array1[:-1], array2)

就是这样。

Doc:http://docs.python.org/2/library/itertools.html#itertools.chain

答案 3 :(得分:-1)

>>> array1.remove(array1[len(array1)-1])
>>> for i in array2:
        array1.append(i)

有点天真,但有效......