Skip to main content
 首页 » 编程设计

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

2025年05月04日15birdshome

我不太习惯 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