2

我有两个使用 listA.extend(listB) 连接的列表。

扩展 listA 时需要实现的是将 listA 的最后一个元素与 listB 的第一个元素连接起来

我的列表示例如下

列表A的结尾= ... '1633437.0413', '5417978.6108', '1633433.2865', '54']

listB 的开头 =['79770.3904', '1633434.364', '5417983.127', '1633435.2672', ...

显然,当我扩展时,我得到以下信息(注意 54)

'5417978.6108', '1633433.2865', '54', '79770.3904', '1633434.364', '5417983.127

下面是我想要实现的最后一个元素和第一个元素连接的地方

[...5417978.6108', '1633433.2865', '*5479770.3904*', '1633434.364', '5417983.127...]

有任何想法吗?

4

3 回答 3

4

您可以通过两个步骤来实现:

A[-1] += B[0]  # update the last element of A to tag on contents of B[0]
A.extend(B[1:])  # extend A with B but exclude the first element

例子:

>>> A = ['1633437.0413', '5417978.6108', '1633433.2865', '54']
>>> B = ['79770.3904', '1633434.364', '5417983.127', '1633435.2672']
>>> A[-1] += B[0]
>>> A.extend(B[1:])
>>> A
['1633437.0413', '5417978.6108', '1633433.2865', '5479770.3904', '1633434.364', '5417983.127', '1633435.2672']
于 2013-05-14T10:20:58.097 回答
2
newlist = listA[:-1] + [listA[-1] + listB[0]] + listB[1:]

或者如果你想扩展 listA “就地”

listA[-1:] = [listA[-1] + listB[0]] + listB[1:]
于 2013-05-14T10:26:56.963 回答
0

单行与列表理解(实际上只是为了列表理解:)):

[(x + listB[0]) if i == len(listA) - 1 else x for i, x in enumerate(listA)] + listB[1:]
于 2013-05-14T10:29:37.230 回答