假设我有一个简单的
Python列表,如下所示:
>>> l=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
现在假设我想将l [2:6]组合成这样的单个元素:
>>> l
['0', '1', '2345', '6', '7', '8', '9']
我能够分步进入一个新列表,如下所示:
>>> l2=l[0:2]
>>> l2.append(''.join(l[2:6]))
>>> l2.extend(l[6:])
>>> l2
['0', '1', '2345', '6', '7', '8', '9']
是否有一种方法(我错过了)在原始列表中更简单地执行此操作?
编辑
像往常一样,Sven Marnach有完美的即时答案:
l[2:6] = ["".join(l[2:6])]
我试过了:
l[2:6] = "".join(l[2:6])
但是没有大括号,连接产生的字符串被视为可迭代,将每个字符放回列表并反转连接!
考虑:
>>> 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