我在数组中返回甚至索引有问题。
def checkio(array):
if len(array):
return ([i for i in array if array.index(i) % 2 == 0])
else:
return 0
print (checkio([-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55,-24,84,49,-65,41]))
并且此代码返回
[-37, -19, 29, 3, -64, 36, 26, 55, -65]
但如果我改变了' 84'在我的数组中,例如' 74'它的回归
[-37, -19, 29, 3, -64, 36, 26, 55, 74, -65]
问题是什么?
答案 0 :(得分:1)
问题是84
出现两次:
print (checkio([-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55,-24,84,49,-65,41]))
^^ ^^
但是,array.index()
会返回第一个出现的索引。这恰好是一个奇数索引,因此所有出现的84
都会被抑制。
如果您只想要采用其他所有元素,只需编写array[::2]
即可。这将采用索引0,2,4等处的元素。无需进行任何查找。