给出点和位置(x,y)的嵌套列表: 点列表= [[[-174.6,52],'A'],[[-152,58],'B'],[[-166.1,53],'C']],[[90,-179.7] ,'D']]
我需要帮助来创建一个代码,该代码将告诉用户在输入的xmax,xmin,ymax,ymin之间是否存在点。如果来自点列表的点在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语句以及=>和<=,但是我不确定如何将其与数据集中涉及的负值联系起来。我们的老师希望能够在更大的数据集上使用此代码。她在上面给我们提供的样本只是一个很小的练习样本。
答案 0 :(得分: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']