python - 选择一定范围的数组元素并定义一个新数组

标签 python arrays list python-3.x size

我不太习惯 pyhton,想编写一个函数,将数组 x 作为输入并返回一个仅包含那些数组的数组 (select)满足特定属性的输入数组的条目,例如在一定范围内。执行此操作的函数如下:

def select(x):
    count = 0
    select = []                #0
    for i in range(0,len(x[0])):
      if ( (int(x[4][i])+0.5) > x[4][i] > (int(x[4][i])-0.5)  ):
        select[0][count]=x[0][i] #1
        select[1][count]=x[1][i] #2
        select[2][count]=x[4][i] #3
        count = count + 1
    return select

但是,如果我调用该函数,我会收到以下错误消息:

IndexError: list index out of range

导致它的行是“#1”(我认为接下来的两行也很麻烦)。我想我必须以某种方式定义数组大小。在那种情况下我怎么能在 python 中做到这一点?如我所见,select=[] 是不够的。

亲切的问候

最佳答案

select 最初是一个空列表。您正在尝试为其当前不存在的元素赋值。

可能你需要 select = [[], [], []]

当您尝试在#1、#2 和#3 中分配它们时,select 的内部元素的元素也将不存在

也许这就是你想要的:

def select(x):
    select = [[] for i in range(3)]    #0 : [[], [], []]
    for i in range(0,len(x[0])):
      if ( (int(x[4][i])+0.5) > x[4][i] > (int(x[4][i])-0.5)  ):
        select[0].append(x[0][i]) #1
        select[1].append(x[1][i]) #2
        select[2].append(x[4][i]) #3
    return select

关于python - 选择一定范围的数组元素并定义一个新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34768590/

相关文章:

list - 最大的质因数 Python

python - 计算 groupby 对象中的多个值

python - 如何使用 python 按特定顺序对文件名进行排序

php - extract() 有什么问题?

c++ - 打印数组拷贝时出现段错误

list - flutter : The method 'add' was called on null

python - 从DataFrame python pandas写入csv

python - 对象不可逆Django是什么意思

java - 我可以在Java中的单个方法(LDL^T Factroization)中同时返回两个数组类型吗

python - 打印一个包含所有可能均值的数组