繁体   English   中英

Python 列表和 for 循环

[英]Python list and for-loop

a = ["a","b","c","d","e","f"]
for i in range(len(a)):
    print(i)

这段代码的output是: 0 1 2 3 4 5

如何修改我的代码,使 output 为: 1 2 3 4 5或仅2 3 4而不更改a variable的值? 我只想提取迭代的某些部分而不是全部。

我只想在我的代码中提取1 2 3 4 52 3 4而不改变上述数组。 所以我所做的是:

a = ["a","b","c","d","e","f"]
for i in range(len(a)):
    if i == 0:
        continue
    print(i)

Output: 1 2 3 4 5没有0

如果我只想提取2 3 4我所做的是:

a = ["a","b","c","d","e","f"]
for i in range(len(a)):
    if i < 2:
        continue
    elif i == 5:
        continue
    print(i)

Output: 2 3 4

您可以尝试使用切片:

从左到右的索引从 0 到len(a)-1
从右到左是 -1 到 -len(a)

语法是:

a[start_index:end_index]

上面可以为您提供元素 output 然后您可以应用列表的索引 function 来获取索引值。

注意:如果您想提取列表的完整部分,此方法将起作用。 它不会遍历整个列表,而只会遍历您要提取的部分。

在给出切片时记住end_index不包括在内。

用于提取 1,2,3,4,5:

for i in a[1:]:
    print(a.index(i))

#or 

用于提取 2、3、4:

for i in a[2:5]:
    print(a.index(i))

正如你提到的你是新手,那么让我们先了解发生了什么,然后我们可以根据我们的要求对其进行修改。 for i in range(len(a)): range() function 用于生成数字序列。 这里,从 (0 到 len(a)-1) 和这里 len(a)=6 所以你的 for 循环从 0 迭代到 5。现在如果我们想修改我们的 output 说我们想要 2,3,4 那么我们可以向 select 任何特定子集提供“if”语句,即

for i in range(len(a)):
    if(i>1) & (i<5):
        print(i)

或者,如果您愿意,可以尝试切片:对于 output 为 2,3,4

print(a[2:5])

记住一个[开始:结束+1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM