簡體   English   中英

Python,如何將此迭代轉換為 for 循環

[英]Python , how to convert this iterations into for loop

這是迭代

i = 0

s_array[i].append(f_array[i][i])
s_array[i].append(f_array[i+1][i])
s_array[i].append(f_array[i+2][i])

s_array[i+1].append(f_array[i][i+1])
s_array[i+1].append(f_array[i+1][i+1])

s_array[i+2].append(f_array[i][i+2])

我想將此迭代轉換為 for 循環,例如這樣

for i in range(something):
        for j in range(something):
                s_array[i].append(f_array[j][i])

我嘗試了許多試驗和錯誤,但沒有得到任何解決方案

等效迭代:

for i in range(3):
    for j in range(3 - i):
        s_array[i].append(f_array[j][i])

例如:

for i in range(3):
    for j in range(3 - i):
        print(i,"-->", j, i)
    print("")

Output:

0 --> 0 0
0 --> 1 0
0 --> 2 0
1 --> 0 1
1 --> 1 1
2 --> 0 2

由於您正在嘗試使用循環將 append 值轉換為數組,因此您可以按照您的指示嘗試嵌套 for 循環。 此外,由於您在迭代繼續時附加的值較少,因此您可以為循環中的 range() 函數之一實現負步長值,從而減少迭代次數。

嘗試做這樣的事情:

for i in range(3):
    for j in range(3-i):
        s_array[i].append(f_array[j][i])

希望這應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM