我对 Python 非常陌生,并且无法将我的想法转换为语法。
这是给我的问题:
给定一个 1 x n 数组 a,编写一个函数odd(a) 以返回一个新数组,该数组包含索引为奇数的元素。
a = np.array([1, 3, 4, 2, 5, 3, 8, 1])
odd(a) = array([3, 2, 3, 1])
这就是我到目前为止所拥有的:
def odd(a):
return ['' if x%2==0 else x for x in a]
然而,这会返回:
[1, 3, '', '', 5, 3, '', 1]
我如何简单地跳过该元素?
最佳答案
使用 enumerate
同时迭代元素及其索引,并使用 index % 2
条件提取所有奇数位置值:
import numpy as np
def odd(a):
return [x for i, x in enumerate(a) if i % 2]
a = np.array([1, 3, 4, 2, 5, 3, 8, 1])
print(odd(a))
# [3, 2, 3, 1]
关于python - 如果不是奇数,如何不返回任何内容或跳过列表中的某个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54279153/