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.join
和 slices
:
my_list, new_list = ['e1', 'e2', 'e3'], []
for i in range(len(my_list)):
new_list.append(''.join(my_list[:i+1]))
但实际上,您的解决方案同样出色。
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))]
我有以下元素列表:
['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.join
和 slices
:
my_list, new_list = ['e1', 'e2', 'e3'], []
for i in range(len(my_list)):
new_list.append(''.join(my_list[:i+1]))
但实际上,您的解决方案同样出色。
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))]