我试图创建一个函数,该函数接受一个列表,并用python给出一个经过编辑的列表
我试图创建一个函数,在本例中称为delta,它将接受一个in_列表,并返回和out_列表。以下是外名单的要求:我试图创建一个函数,该函数接受一个列表,并用python给出一个经过编辑的列表,python,Python,我试图创建一个函数,在本例中称为delta,它将接受一个in_列表,并返回和out_列表。以下是外名单的要求: len(外部列表)==len(内部列表)-1 out\u list(i)=in\u list(i+1)-in\u list(i) 我希望使用下面代码中“时间”和“位置”列表上的功能: positionfile = open.("positionmeasurements.txt", "r", encoding="utf-8-sig") filetext = positionfile.re
len(外部列表)==len(内部列表)-1
out\u list(i)=in\u list(i+1)-in\u list(i)
positionfile = open.("positionmeasurements.txt", "r", encoding="utf-8-sig")
filetext = positionfile.read().splitlines()
times = []
positions = []
for i in filetext:
time, position = i.split(";")
times.append(time)
positions.append(position)
这是我到目前为止为函数得到的代码:
def delta(in_list):
for i in in_list:
out_list = in_list[i+1] - in_list[i]
return out_list
以下数字是时间(分号左侧)和位置:
0.05;0.9893835
0.1;0.9921275
0.15;0.989212
0.2;0.98784
0.25;0.9876685
0.3;0.988526
0.35;0.991613
0.4;0.9921275
0.45;0.9921275
0.5;0.9886975
0.55;0.985096
0.6;0.983724
0.65;0.9578275
0.7;0.9163245
0.75;0.8590435
0.8;0.7890715
0.85;0.714812
0.9;0.642096
0.95;0.559776
一,;0.4776275
1.05;0.398566
1.1;0.315903
1.15;0.2320395
1.2;0.1799035
1.25;0.181104您可以尝试列表理解。由于列表中的元素是字符串,因此必须将它们转换为浮点:
def delta(in_list):
return [float(in_list[i+1]) - float(in_list[i]) for i in range(len(in_list) - 1)]
我的一部分人认为递归地做这件事会更优雅,但是如果有一个很长的列表,你做这件事的方式可能会更好。不管怎么说,您就快到了,您刚刚混淆了Python的for循环语法<代码>为列表中的项目提供项目,
为范围内的i(len(list))
为列表提供索引,这是您在此处想要的
def delta(in_list):
out_list = []
for i in range(len(in_list)-1):
out_list.append(in_list[i+1] - in_list[i])
return out_list
只是一个列表
>>> in_list = [1, 1, 2, 3, 5, 8, 13, 21]
>>> [b - a for a, b in zip(in_list, in_list[1:])]
[0, 1, 1, 2, 3, 5, 8]
那么这个代码有什么问题呢?我们应该猜猜吗?我猜
索引器:列表索引超出范围
除非您在解析该数据时遇到问题,否则最好将其忽略,并以数字列表的形式提供输入。在函数定义中,I in range(len(in_list))应该是
问题是,当我尝试在列表“times”和“positions”上使用函数时,我得到了错误代码`TypeError:只能将str(而不是“int”)连接到str`你能给我们看一下你的时间和位置列表以及时间[1]和位置[1]的类型吗?这里有同样的问题。你的索引将出界。谁整洁!把斐波那契数列倒过来+1.