努力使用切片语法来连接列表的一部分的列表元素

daw*_*awg 8 python list

假设我有一个简单的Python列表,如下所示:

>>> l=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
Run Code Online (Sandbox Code Playgroud)

现在假设我想要组合l[2:6]成这样的单个元素:

>>> l
['0', '1', '2345', '6', '7', '8', '9']
Run Code Online (Sandbox Code Playgroud)

我能够分步进入一个新列表,如下所示:

>>> l2=l[0:2]
>>> l2.append(''.join(l[2:6]))
>>> l2.extend(l[6:])
>>> l2
['0', '1', '2345', '6', '7', '8', '9']
Run Code Online (Sandbox Code Playgroud)

有没有办法(我错过了)在原始列表上更简单地执行此操作l

编辑

像往常一样,Sven Marnach有一个完美的即时答案:

l[2:6] = ["".join(l[2:6])]
Run Code Online (Sandbox Code Playgroud)

我试过了:

l[2:6] = "".join(l[2:6])
Run Code Online (Sandbox Code Playgroud)

但是没有大括号,连接产生的字符串被视为可迭代,将每个字符放回列表并反转连接!

考虑:

>>> l=['abc','def','ghk','lmn','opq']
>>> l[1:3]=[''.join(l[1:3])] 
>>> l
['abc', 'defghk', 'lmn', 'opq']   #correct

>>> l=['abc','def','ghk','lmn','opq']
>>> l[1:3]=''.join(l[1:3])
>>> l
['abc', 'd', 'e', 'f', 'g', 'h', 'k', 'lmn', 'opq']   #not correct
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 12

使用切片分配:

l[2:6] = ["".join(l[2:6])]
Run Code Online (Sandbox Code Playgroud)