forloop当数组有一定大小时,它不会完全迭代

2024-10-04 07:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

当我有这个阵列

 A = [1,2,3]

我做了这个基本的for循环来迭代整个数组,除了最后一个位置

index = 0
for i in range(1,len(A)-1):
    print(i)
    if A[i] > A[index]:
        index = i

它是suposed做2次迭代,但当我打印“我”,这是输出

1

另外,我试过这个阵列,效果非常好

B= [7,5,14,2,8,8,10,1,2,3] 

对发生的事有什么提示吗?谢谢你的时间

edit=我已经把索引声明 编辑2=问题已解决


Tags: in声明编辑forindexlenif时间
2条回答

range()函数返回一个数字序列,默认情况下从0开始,按1递增(默认情况下),并以指定的数字结束。你知道吗

语法:

range(start, stop, step)

在这里,需要注意的一点是stop是独占的。因此,如果运行从1len(A)-1的循环,那么实际上它将从1len(A)-2运行,这只是代码中的一个迭代。你知道吗

因此,为了进行两次迭代,如果您想从索引开始,则用range(0,len(A)-1)range(len(A)-1)替换range(1,len(A)-1),如果您想从1开始,则用range(1,len(A))并进行两次迭代。你知道吗

我假设您想创建一个大于某个值的项目列表,如果是这样的话:

a = 5
b = [1, 5, 6, 2, 10, 69, 42, 7]
c = []
for I in b:
    if I > a:
        c.append(I)
print(*c)

你的问题很不清楚,你的目标是什么?你知道吗

相关问题 更多 >