2009-11-06 50 views
0

如何修復以下代碼?Python切片中的模量

我想要得到i模5 == 1的元素片。

data = "8|9|8|9|8|9|8|9|9|8|9|8|9|8|9|8" 
arra = map(int,data.split("|")) 

sums += [sum(arra[i % 5==1:(i + 4) % 5==1])   // Problem here 
     for i in range(0, len(arra), 4)] 
+0

從文體上看,是有一個原因,你是從一個字符串轉換你的數據, arra = 8,9,8,9,8,9,8,9,9,8,9,8,9,8,9,8'? 'arra'也是變量名的奇怪選擇。 'array'既不是保留字,也不是python中的內建函數(您正在考慮的結構稱爲「list」或「tuple」)。 – jcdyer

回答

6
sums += sum(arra[1::5]) 

而且它的拼寫array。 ;-)

+0

我不知道你可以做到這一點。真棒! –

+0

可以在術語「切片」下找到更多文檔。 – jcdyer

0

這是

sums = sum(arra[1::5]) 

如果使用+ =,Python的重視域的名稱金額爲alreadey入店:

回溯(最近通話最後一個): 文件 「」,1號線,在 總和+ =總和(arra [1 :: 5]) NameError:名稱'總和'沒有定義