2009-11-06 94 views

回答

6

試試這個:

arra = sum(a for i,a in enumerate(arra) if i %3==1 and i != 16) 

對於這種複雜的工作,切片標誌不會真的。但是,你爲什麼要重新排列陣列?您清除了原始值的列表。

+0

使用'enumerate()'的+1。這是正確的答案。 – 2009-11-06 20:43:39

0

切片不喜歡的工作。

Paul McGuire有正確的代碼:

arra = sum(x for i, x in enumerate(arra) if i % 3 == 1 and i != 16) 

它也不會從你的代碼是什麼for i in range(0, len(arra), 16)]點應該是清楚的。你想達到什麼目的?

+0

OP不想跳過*值* == 16,但*索引* == 16. – PaulMcG 2009-11-06 20:38:40

+0

@Paul McGuire:啊是的。我的錯。我糾正了我的答案。 – 2009-11-06 20:41:23