我有一个列表['a','b','c','d'],想制作另一个列表,如下所示:['a', 'ab', abc', 'abcd']?
谢谢
尝试过:
list1=['a','b','c', 'd']
for i in range(1, (len(list1)+1)):
for j in range(1, 1+i):
print(*[list1[j-1]], end = "")
print()
Run Code Online (Sandbox Code Playgroud)
返回:
a
ab
abc
abcd
Run Code Online (Sandbox Code Playgroud)
它确实打印了我想要的内容,但不确定如何将其添加到列表中,看起来像['a', 'ab', abc', 'abcd']
使用itertools.accumulate,默认情况下会像累积和一样对元素进行求和。由于加法 ( __add__) 是为str并导致字符串的串联而定义的
assert "a" + "b" == "ab"
Run Code Online (Sandbox Code Playgroud)
我们可以按accumulate原样使用:
import itertools
list1 = ["a", "b", "c", "d"]
list2 = list(itertools.accumulate(list1)) # list() because accumulate returns an iterator
print(list2) # ['a', 'ab', 'abc', 'abcd']
Run Code Online (Sandbox Code Playgroud)