我有一个GPS坐标列表。我还有一个比较两个GPS坐标并计算一个值的函数。
我知道我可以创建一个嵌套循环来运行每对上的函数,但这看起来不够优雅。
是否建议在列表中的项目上运行比较功能?
感谢。
答案 0 :(得分:1)
您可以使用itertools.combinations:
>>> from itertools import combinations
>>> list(combinations([1,2,3,4,5],2))
[(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)]
这是可迭代的,因此您可以迭代和处理您的数据。
>>> for first, second in combinations([1,2,3,4,5],2):
... print first, second
... # perform your operation with first and second
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5