Python:在文本fi中查找最大xvalue和maximum yvalue

2024-10-04 05:27:26 发布

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

我对在文本文件中找到最大的x或y值有疑问。这是多边形中的点算法所必需的。
多边形与点一起输入文本文件,即输入或输出多边形以及多边形的行数。在

例如:

5.0 4.0 6 1.0 1.0 4.0 0.0 6.0 3.0 7.0 6.0 3.0 7.0 0.0 4.0 1.0 1.0  

点是[5.0 4.0],多边形有6条线,接下来是多边形的书写点:

^{pr2}$

第一个是x坐标,第二个是y坐标。在

我有测试两条线位置的程序。现在我要把这个过程和这个算法结合起来。在

我所拥有的是:打开txt读取一行txt,然后将其拆分并将值保存到变量中

pointinp = open ("pointinp.txt", "r")  
for line in pointinp.readlines():  
    riadok = line.split()  
    j=3  
    for i in range (0,riadok[2]):  
        x1=float(riadok[0])  
        y1=float(riadok[1])  
        k1=float(riadok[i+j])  
        l1=float(riadok[i+(j+1)])  
        k2=float(riadok[i+(j+2)])  
        l2=float(riadok[i+(j+3)])  
        j=j+1  

点坐标为x1和y1,其他点坐标为k1、l1、k2、l2。现在我要从文本文件中找到最大的x和y坐标,把它保存到x2,y2。 所以我将有两条线[x1,y1][x2,y2]和[k1,l1][k2,l2],然后我将测试这些线的位置,这是多边形中的点算法所必需的,在这里将计算交点(创建的包含点的直线与多边形的每条直线之间的交点)


Tags: txt算法l1fork2k1float多边形
2条回答

中找到最大的x和y就足够简单了,您只需要能够将它们分开并对它们应用max()函数。幸运的是,python列表索引支持步长,因此可以轻松地提取其他值:

xvals=riadok[3::2]
yvals=riadok[4::2]
xmax=max(xvals)
ymax=max(yvals)

文件中查找最大值有点困难:对于每一行,您可以将您的本地最大值与目前找到的最大值进行比较,如果最大值更大,则将后者替换为前者:

^{pr2}$

但你会发现这些数字随着你进一步浏览你的文件而慢慢增长。如果您想从第一行获得真正的最大值x和y,那么您必须分两次处理文件,一次是找到最大的x和y,一次是应用算法。在

如果你喜欢powerfull代码,你会喜欢这个:) 如果你只有整数,你可以用int代替float

文件.txt

1 2 3 900000.029384 10000 6 8 900000.029383

maximum= max(map(float,(open('file.txt', 'r').readline()).split()))

相关问题 更多 >