gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:05 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com