如何将值保存到一个列表中以在Python中进行迭代?

时间:2019-06-09 22:34:41

标签: python-3.x list

我一直在尝试学习Python中的循环和列表。我有一个来自for循环的数据集。

listing = []
 try:
        for coordinates in g.objects(None, predicate=URIRef('http://www.w3.org/ns/prov#generatedAtCoordinates')):
            final_coordinates = coordinates
            data = final_coordinates.split(",")
            latitude = float(data[0])
            longitude = float(data[1])
            calc_distance = (latitude, longitude)
        listing.append(calc_distance)

 except ValueError:
        final_coordinates = 0

 print(listing)

calc_distance值为:

(41.403277274422436, 2.0966085137374164)
(41.4018032171552, 2.094118204776835)
(41.4031599745838, 2.09554506488234)
(41.40939182891685, 2.092649778368276)
(41.40498153943922, 2.092998814485954)
(41.40134146772367, 2.0950656171373985)
(41.40741149037425, 2.0911841596351013)

这些是一堆随机坐标。

我想将它们全部保存到一个大列表中以便进行迭代。想法是计算它们之间的距离。

listing的打印看起来很奇怪:

[(41.406975300145035, 2.091861990302946)]
[(41.406975300145035, 2.091861990302946), (41.40113308262795, 2.091383862874567)]
[(41.406975300145035, 2.091861990302946), (41.40113308262795, 2.091383862874567), (41.40599600376296, 2.0947715310666606)]
[(41.406975300145035, 2.091861990302946), (41.40113308262795, 2.091383862874567), (41.40599600376296, 2.0947715310666606), (41.408565289702246, 2.0903512224468255)]

它应该像这样:

[(41.403277274422436, 2.0966085137374164), (41.4018032171552, 2.094118204776835), (41.4031599745838, 2.09554506488234)]

因此,从这个列表中,我希望能够选择第一个,并计算其他坐标之间的距离。

我不了解Python,但是在Java中,有一个迭代器函数,该函数逐一遍历列表并自动放入值。像object.next之类的东西,我希望第一个值稳定,但第二个坐标将一直更改到此列表的末尾。

例如:

print(geopy.distance.distance(calc_distance[1], calc_distance.next).km)

有人知道如何在Python3中执行此操作吗?

1 个答案:

答案 0 :(得分:0)

您可以在python中使用:完成listing列表坐标的第二到最后的迭代:

slicing