假设我有一个简单的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)
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |