Python 相互添加后续列表成员

Python adding subsequent list members to each other

我有以下元素列表:

['e1', 'e2', 'e3']

最后我想:

['e1', 'e1e2', 'e1e2e3']

目前我有以下实现它的代码,但我想知道是否有任何其他方法,如列表理解,可以使解决方案更短。我愿意接受所有建议,包括疯狂的建议。此外,它不需要是一个列表,而是任何可迭代的东西。

my_list = ['e1', 'e2', 'e3']
new_list = []
add_elem = ''
for elem in my_list:
    add_elem += elem
    new_list.append(add_elem)

代码越短并不意味着它越好,可读性是最重要的因素。也就是说,您可以使用 str.joinslices:

my_list, new_list = ['e1', 'e2', 'e3'], []
for i in range(len(my_list)):
    new_list.append(''.join(my_list[:i+1]))

但实际上,您的解决方案同样出色。

试试这个itertools.accumulate

import itertools

lst = ['e1', 'e2', 'e3']
print(list(itertools.accumulate(lst)))

文档中描述了更多用法

这是一个列表理解。

my_list = ['e1', 'e2', 'e3']
new_list = [''.join(my_list[0:x+1]) for x in range(len(my_list))]