在使用的流控制命令输入时,XMAX,XMIN,YMAX,YMIN和打印“点”名称的用户之间的代码用于发现如果一个“点”(X,Y)

问题描述 投票:-1回答:1

给定的点和位置(X,Y)的嵌套列表:pointlist = [[[-174.6,52], 'A'],[[-152,58], 'B'],[[-166.1,53] , 'C']],[[90,-179.7], 'd']]

我需要帮助建立一个代码,如果一个点是用户输入的XMAX,XMIN,YMAX,YMIN之间,将告诉。如果从pointlist一个点是在两个XMAX,XMIN和YMAX-ymin的值的范围内,那么代码需要打印的名称或包含在一个或多个点的名称。

数据列表的格式是pointlist = [[X值,Y值],“点名称”]

我已经定义的变量,用户将输入:

xmax = float(input("Enter a maximum x value:"))
xmin = float(input("Enter a minimum x value:"))
ymax = float(input("Enter a maximum y value:"))
ymin = float(input("Enter a minimum y value:"))

我知道我需要使用if和for语句,=>和<=,但我不知道如何与与参与数据集负值。我们的老师希望能够在更大的数据集使用此代码。她给了我们上面的那个是只为实践样本量较小。

python controls flow
1个回答
0
投票

这里是我的尝试。它输出作为一个列表:

pointlist = [[[-174.6, 52], 'A'], [[-152, 58], 'B'], [[-166.1, 53], 'C'],[[90, -179.7], 'D']]

def check(xmax, xmin, ymax, ymin):
    in_range = []
    for i in pointlist:
        if i[0][0] >= xmin and i[0][0] <= xmax and i[0][1] >= ymin and i[0][1] <= ymax:
            in_range.append(i[1])
    return in_range

一些例子:

>>>print(check(100, -180, 60, -180))
['A', 'B', 'C', 'D']

>>>print(check(100, -170, 60, -180))
['B', 'C', 'D']

>>>print(check(80, -180, 60, -180))
['A', 'B', 'C']

>>>print(check(100, -180, 55, -180))
['A', 'C', 'D']

>>>print(check(100, -180, 60, -170))
['A', 'B', 'C']
© www.soinside.com 2019 - 2024. All rights reserved.