我的意思是这个。我有一个'1234'
的字符串。如何制作一个列表,使其看起来像[1+2+3+4, 2+3+4, 3+4, 4]
?
答案 0 :(得分:1)
您可以使用嵌套循环=> O(n 2 )复杂度,例如列表理解中的sum()
:
def intermediate_list(s):
l = [int(i) for i in s]
return [sum(l[i:]) for i in range(len(l))]
或者您可以向后创建列表然后反转=>上)。在阅读以下代码之前,请先考虑一下:
def intermediate_list(s):
tmp = 0
out = []
for i in range(len(s)-1, -1, -1):
tmp += int(s[i])
out.append(tmp)
return out[::-1]
答案 1 :(得分:0)
你需要两个for循环
>>> st = '1234'
>>> st
'1234'
>>> l = list()
>>> for i in range(len(st)):
sum = 0
# sum the digits from ith to end
for j in range(i, len(st)):
sum += int(st[j])
l.append(sum)
>>> l
[10, 9, 7, 4]