从2d列表中获取x,y并传递

2024-05-19 12:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取一个包含纬度/经度的二维位置列表,并且只从列表中获取坐标(在第3列和第4列中)发送到另一个函数,以便可以计算距离。。。但我完全被难住了。 我所拥有的是。。。在

从OP编辑来显示我在哪里。。。 x1=-18.00#这些值不变 y1=118.00
x2=浮动(origList[3]) y2=浮动(origList[4]) n=长度(origList) 应用程序列表=[]

for i in range (n-1):
    appList.append(findDistance(x1, y1, x2, y2))
    print appList

但现在我得到了…文件“F:\Storage\t\u 2\coord_查找.py“,第27行,主要,x2=数学工厂(奥利格利斯特[3]) 类型错误:需要浮点

所以问题在于如何转换成float???在

那么到目前为止,我对findInstance函数的所有了解(我只是刚刚启动它,只想测试参数是否正确传递)。。。 定义查找状态(x1、y1、x2、y2): cosX=数学工厂(y1-y2) a=90-x2 b=90-x1


这是我更新的代码,它给了我这个。。。在

德尔克斯=数学工厂(y1-y2)

TypeError:不支持-:“float”和“list”的操作数类型

我把它贴出来是因为我显然没有给出一个足够清楚的解释,并且从那以后做了一些改变。如你所见,我想从cols3,4得到x2,y2。 尝试了x2=float(origList[3]),y2=float(origList[4]),但这也不起作用-I get“float()参数必须是字符串或数字”。 在尝试将值提取为浮点数之前,是否需要以某种方式拆分列表??在

^{pr2}$

Tags: 函数类型列表参数工厂数学floatx1
2条回答

显然,你的列表包含的是对字符串,而不是数字。在

在Python中,这种转换从来不是自动的,因此您可能需要将代码更改为:

findDistance(x1, y1, float(origList[i][3]), float(origList[i][4]))

像这样的错误

^{pr2}$

很明显,传递给float的既不是数字也不是字符串。在

只需在有问题的语句之前添加一个print repr(stnList[3]),然后检查传递的内容。在

您也可以使用python调试器来查找问题所在,例如查看这个pdb session example的短视频

您的origList[0:]计算结果为origList。尝试origList[0]。在

range(0,n-1)只增加到n-2,而且不需要指定起始值0,因为这是默认值。使用range(n)。在

你说坐标在第3列和第4列。看起来您对编程语言中的索引有点陌生,所以我希望我不会无端提醒您可能正在查找列表元素2和3,如果您的意思是这是第3和第4列的话。在

另外,print应该在循环之外。在

相关问题 更多 >