我在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)
但我明白,我需要添加外部循环,以便遍历数组的所有元素。编写它的最有效方法是什么?
答案 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]))