簡體   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