如何创建一个外部循环来遍历数组的元素?

时间:2016-10-30 08:47:48

标签: python arrays loops

我在python中处理这样的脚本:

在输入中我有这样的数组:

a = [2,4,7,2]

在输出上我需要返回数组的元素,从第一个开始

[2]
[2, 4]
[2, 4, 7]
[2, 4, 7, 2]

如何从第二个和更多元素开始检索元素:

//start with a[1]
[4]
[4, 7]
[4, 7, 2]

//start with a[2]
[7]
[7,2]

//start with a[3]
[2]

所以,现在我的代码看起来像这样:

def ar(a):
    result = 0
    res_arr = []
    for i in a:
        res_arr.append(i)
        k = sum(res_arr)
        print (res_arr,k)

但我明白,我需要添加外部循环,以便遍历数组的所有元素。编写它的最有效方法是什么?

3 个答案:

答案 0 :(得分:3)

在Python中,您可以使用切片(有关详细信息,请参阅this question。)

例如,

for i in range(1, len(a) + 1):
    print(a[:i])

将输出

[2]
[2, 4]
[2, 4, 7]
[2, 4, 7, 2]

要从n元素开始,您可以使用以下代码:

n = 1  # Start with second element (list indexes start with 0)
for i in range(n + 1, len(a) + 1):
    print(a[n:i])

将输出:

[4]
[4, 7]
[4, 7, 2]

答案 1 :(得分:1)

只需遍历要在切片中使用的一系列值:

def ar(a):
    for i in range(1, len(a)+1):
        print(a[:i])

结果:

>>> ar([1,2,3])
[1]
[1, 2]
[1, 2, 3]

只需将其添加到几个关键位置即可从任意索引开始:

def ar(a, start):
    for i in range(1+start, len(a)+1):
        print(a[start:i])

结果:

>>> ar([1,2,3], 1)
[2]
[2, 3]

答案 2 :(得分:0)

您可以使用切片。

用你的代码:

def ar(a, start=0):
    result = 0
    res_arr = []
    for i in a[start:]:
        res_arr.append(i)
        k = sum(res_arr)
        print (res_arr,k)

使用更多pythonic代码:

def ar(a, start=0):
    for i in range(start + 1, len(a) + 1):
        print(a[start:i], sum(a[start:i]))
相关问题