在python中比较两个坐标列表并使用坐标值来分配值

我有两个分别从两个单独的导入文件中提取的数据集,这两个文件都被导入到python中,并且当前被放置在列表中,如下所示。

清单1的格式为:

(参考编号,x坐标,y坐标)

示例列表1:[[1,0,0],[2,0,10],[3,0,20],[4,0,30],[5,0,40]]

清单2的形式为:

(x坐标,y坐标,温度)

示例列表2:[[0,0,100],[0,10,110],[0,20,120],[0,30,130],[0,40,140]]

我需要使用x和y坐标比较两个列表,如果找到匹配项,则会生成一个包含相应参考编号和温度的新列表。

例如,输出列表上方的两个列表将遵循以下格式:

(参考编号,温度)

示例输出列表:[[1,100],[2,110],[3,120],[4,130],[5,140]]

这需要处理大量数据,而且我真的很难找到解决方案,我们将不胜感激。干杯

回答:

这行得通,0(n^2)但很容易阅读和理解。

 result = []

for reference, x, y in list1:

for a, b, temperature in list2:

if x == a and y == b:

result.append([temperature, reference])

您可以0(n)通过遍历列表并将坐标存储为来降低复杂度,dict如下所示:

 dict1 = {}

for reference, x, y in list1:

dict[(x, y)] = reference

dict2 = {}

for x, y, temperature in list2:

dict2[(x, y)] = temperature

result = []

for coordinate, reference in dict1.iteritems():

temperature = dict2.get(coordinate)

if temperature:

result.append([temperature, reference])

以上是 在python中比较两个坐标列表并使用坐标值来分配值 的全部内容, 来源链接: utcz.com/qa/423905.html

回到顶部