从列表中选择两个元组并在Python中计算每个可能的对

时间:2012-10-25 06:03:03

标签: python math python-3.x tuples loops

所以我有这个包含元组的列表,我还编写了一个代码来计算该列表中任意两个元组之间的欧几里德距离。我在编写计算每一对可能的元组的代码时遇到了问题=我知道有很多类似的问题,很多人建议使用itertools,但我不熟悉它,如果可能的话,我想要一个常规的循环代码。但如果有人可以教我,那么itertools会很酷:)

基本上我的列表看起来像

[(1,2,3,4),(5,6,7,8)(9,10,11,12)....etc]

我的距离编码工作正常。只是选择我遇到问题的部分。谢谢!

编辑:对不起,忘了提,所以我想要所有可能对的所有距离的总和。回顾一下,我在该列表中有100个元组,我想计算tuple1 / tuple2,tuple1 / tuple3,... tuple99 / tuple100之间的距离,并将所有这些加起来并将其放入列表中。

希望这很清楚!

1 个答案:

答案 0 :(得分:2)

以下是使用itertools的简化示例:

from itertools import combinations

t = [(1,2), (3,4), (5,6)]

for i in combinations(t, 2):
    print i

输出:

(1, 2) (3, 4) # 1st with 2nd
(1, 2) (5, 6) # 1st with 3rd
(3, 4) (5, 6) # 2nd with 3rd

然后对这些进行任何计算...