簡體   English   中英

用另一個列表替換列表中的最后一個元素

[英]Replace the last element in a list with another list

例如我有兩個 arrays 一個array1array2

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

現在我想要 output 作為

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

我怎樣才能在 python 中做到這一點

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

要替換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的空白部分,並用新元素“替換”它。

鏈接數組時,使用itertools可能有用:

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

而已。

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

Python3 中的替代解決方案:

>>> array1 = ['A', 'B', 'C', 'D', 'E', 'F',]
>>> array2 = ['G', 'H', 'I',]
>>> array1 = [*array1[:-1], *array2]
>>> array1
['A', 'B', 'C', 'D', 'E', 'G', 'H', 'I']
>>> array1.remove(array1[len(array1)-1])
>>> for i in array2:
        array1.append(i)

Kinda天真但可以工作..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM