array.index不打印数字

时间:2014-09-17 08:24:00

标签: python arrays indexing

我在数组中返回甚至索引有问题。

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]

问题是什么?

1 个答案:

答案 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等处的元素。无需进行任何查找。