如何从python中的字符串中创建一个中间数字列表?

时间:2014-11-29 23:10:15

标签: python string list

我的意思是这个。我有一个'1234'的字符串。如何制作一个列表,使其看起来像[1+2+3+4, 2+3+4, 3+4, 4]

2 个答案:

答案 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]