合并Python列表中的一些列表项

35 python list concatenation

说我有这样的列表:

[a, b, c, d, e, f, g]
Run Code Online (Sandbox Code Playgroud)

如何修改该列表使其看起来像这样?

[a, b, c, def, g]
Run Code Online (Sandbox Code Playgroud)

我更希望它直接修改现有列表,而不是创建新列表.

Ste*_*202 50

合并的基础是什么?你的问题很模糊.另外,我假设a,b,...,f应该是字符串,即'a','b',...,'f'.

>>> x = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> x[3:6] = [''.join(x[3:6])]
>>> x
['a', 'b', 'c', 'def', 'g']
Run Code Online (Sandbox Code Playgroud)

查看序列类型的文档,特别是有关可变序列类型的文档.也许还有字符串方法.


Bli*_*ixt 35

那个例子很模糊,但也许是这样的?

items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
items[3:6] = [''.join(items[3:6])]
Run Code Online (Sandbox Code Playgroud)

它基本上执行拼接(或分配到切片)操作.它会删除项目3到6并在其位置插入一个新列表(在这种情况下,列表包含一个项目,这是已删除的三个项目的串联.)

对于任何类型的列表,您都可以这样做(+在所有项目上使用运算符,无论其类型是什么):

items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
items[3:6] = [reduce(lambda x, y: x + y, items[3:6])]
Run Code Online (Sandbox Code Playgroud)

这使得该reduce功能具有lambda基本上使用+操作员将项目添加在一起的功能.


gho*_*g74 5

只是一个变化

alist=["a", "b", "c", "d", "e", 0, "g"]
alist[3:6] = [''.join(map(str,alist[3:6]))]
print alist
Run Code Online (Sandbox Code Playgroud)