我想弄清楚如何解決這個問題。我知道答案,但我不明白爲什麼它是正確的。在Python中使用循環訪問列表中的索引
primes = [2, 3, 5, 7, 11]
執行以下循環後它包含什麼?
for i in range(2):
primes[4 - i] = primes[i]
回答:2,3,5,3,2
我被困在primes[4 - i]...
一部分。有人可以解釋這部分嗎?我知道這是指數的位置。
我想弄清楚如何解決這個問題。我知道答案,但我不明白爲什麼它是正確的。在Python中使用循環訪問列表中的索引
primes = [2, 3, 5, 7, 11]
執行以下循環後它包含什麼?
for i in range(2):
primes[4 - i] = primes[i]
回答:2,3,5,3,2
我被困在primes[4 - i]...
一部分。有人可以解釋這部分嗎?我知道這是指數的位置。
該代碼從反轉數組開始,但它覆蓋了數組的末尾,因此總體上它只輸出一個迴文。
陣列是建立具有索引:
0,1,2,...,n
可以通過選擇其位置例如輸入的每個指標array[2]
獲取數組的第三個值。
你的代碼,就像@ script8man解釋的那樣,選擇4-th索引。在range(2)
(0,1)中,它將返回第4個和第3個索引,該索引被第i個索引(0,1)覆蓋。
range(n)
給你的數字從0到n序列 - 1
如果通過其序列中的代碼替換range
功能,你基本上得到這樣的:
for i in [0, 1]:
primes[4 - i] = primes[i]
每次循環,i
將從0開始並且變得越來越大。 這又意味着4 - i
將從4開始變小。
第一循環:4 -i = 4 - 0 = 4
第二循環:4 - I = 4 - 1 = 3
(等如果在範圍內的值比大2)
線primes[4 - i] = primes[i]
意味着你分配給指數4 - i
存儲索引i
處的值。
在您的例子,你的循環實際上這樣做:
第一循環:質數[4] =素數[0]
第二循環:質數[3] =素數[1]
給你你現在有的結果。
該代碼只是將第一個倒數第二個倒數第二個倒數第二個,依此類推。 直到循環結束