Python相互添加后续列表成员



我有以下元素列表:

['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)

尝试这个迭代工具。累积

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))]

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

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

但实际上,你的解决方案也一样好。

最新更新