并在Python切片与模数

时间:2009-11-06 20:32:09

标签: python

如何修复代码?

我试图通过

i % 3 == 1i != 16失败
data = "8|9|8|9|8|9|8|9|9|8|9|8|9|8|9|8"
arra = map(int,data.split("|"))

arra = sum(arra[1::3 and != 16]) for i in range(0, len(arra), 16)]        
                       |
                       |---// Problem here

2 个答案:

答案 0 :(得分:6)

试试这个:

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

对于这种复杂的工作,切片符号不会真的这样做。但是你为什么要回到arra?您将清除原始值列表。

答案 1 :(得分: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)]应该是什么意思。你想要完成什么?