[英]How to slice arrays in a for loop with the slicing indices variable
我想在八個部分中切割64個項目的數組,為此使用了以下方法,但它顯示了語法錯誤
for i in range(8):
s = slice(8i,(8i+7))
inparr = cornersort[s]
和
for i in range(8):
inparr = cornersort[8i,(8i+7)]
兩者都顯示錯誤消息:
s = slice(8i,(8i+7))
^
SyntaxError: invalid syntax
但是,當我刪除for循環可迭代'i'時; 代碼工作。 請幫忙解決這個問題。
雖然8i
是一個有效的數學表達式,但它不是一個有效的python語句,因為乘法運算需要是顯式的,而不是暗示的:
i = 8
8i # SyntaxError
8*i
64
此外,在變量名中,它們不能以數字開頭:
2i = 5
# syntaxError
i2 = 5
# this is fine
所以你的循環:
for i in range(8):
inparr = cornersort[8*i:(8*i+8)]
請查看下面的示例如何將包含64個項目的數組切割成8個切片,每個切片8個項目。 請注意基本語法[start:stop]
和切片索引是start <= i <stop,即停止指向切片后的一個項目。
test = list(range(64))
# example 1
for i in range(8):
print(test[8*i:8*i+8])
# example 2
for i in range(0,64,8):
print(test[i:i+8])
你可以使用range
for i in range(0, 64, 8):
# slice arr[i: i + 8]
結果是
i, i+8
0 8
8 16
16 24
24 32
32 40
40 48
48 56
56 64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.