是否有命令合并列表中的后续元素 - 即在列表中['AA','BB','C','D']如何合并前两个元素(或任何其他元素,具体取决于列表中的代码),留下像''AABB','C','D'这样的列表?谢谢!
答案 0 :(得分:5)
>>> a = ['AA', 'BB', 'C', 'D']
>>> a[0:2] = [''.join(a[0:2])]
>>> a
['AABB', 'C', 'D']
答案 1 :(得分:2)
如果您不关心初始列表,可以尝试以下操作:
>>> a = ['AA', 'BB', 'C', 'D']
>>> a[0] += a.pop(1)
如果你想获得新的并按原样保留initList,你可以使用类似的东西(注意这只是一个样本):
a = ['AA', 'BB', 'C', 'D']
outList = a[:] # make a copy of list values
outList[0] += outputList.pop(1)
或者在某些情况下,您也可以尝试使用类似的东西:
from itertools import groupby
a = ['AA', 'BB', 'C', 'D']
res = [''.join((str(z) for z in y)) for x, y in groupby(a, key = lambda x: len(x) == 2)]
答案 2 :(得分:1)
这是一个使用迭代器的python 3.x解决方案,因此与任何生成器对象兼容(如range
对象...):
def merger(iterable, index=0, length=1):
it = iter(iterable)
for count in range(index):
yield next(it)
merged = next(it)
for count in range(length-1):
merged += next(it)
yield merged
for item in it:
yield item