[英]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 5
或2 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.