说我有这样的列表:
[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基本上使用+操作员将项目添加在一起的功能.
只是一个变化
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)