Python:在列中查找组合并使用索引值执行相关操作

Python:在列中查找组合并使用索引值执行相关操作,python,combinations,itertools,Python,Combinations,Itertools,我需要在列表/列中找到可能的组合(两对),并对相对列/列表执行相对操作。比如,对成对的值进行减法 输入示例: column 1 column2 ---------------- A 10 C 20 B 30 输出 column1 column2 #internal operation -------------------------------------- [A,B] -20 A-B [A,C] -10

我需要在列表/列中找到可能的组合(两对),并对相对列/列表执行相对操作。比如,对成对的值进行减法

输入示例:

column 1 column2
----------------
A         10
C         20
B         30
输出

column1  column2    #internal operation
--------------------------------------
[A,B]    -20        A-B
[A,C]    -10        A-C
[C,B]    -10        C-B
我使用了
itertools.combines
进行组合


完成这项工作有什么建议吗?

将您的初始列放入map p(
p={'A':10,…}
等),然后在itertools.compositions(p.keys(),2)]中计算c1,c2的
w=[(c1,c2),p[c1]-p[c2])
。它应该包含您希望放入结果列中的所有数据


要按列获取数据:
字母对,值=zip(*w)

是。我已经从文件中读取了值。我也得到了可能的组合。那么问题到底是什么?你想实现什么?我已经发布了演示示例。如果有,我有两列。一个带[A,B,C],另一个带它们的值,比如[10,20,30]。我需要得到减法的值(对(A,B))。i、 对于组合[A,B],我需要输出值=10-30=-10。使用itertools.combines,我可以得到所有的组合。但是,不是这个操作或组合上的索引位置。像魅力一样工作!但需要将值拆分为单独的列表。只需使用
zip
。让
w=[((c1,c2),P[c1]-P[c2])用于itertools.组合(P.keys(),2)]
中的c1,c2,然后将其拆分为列:
zip(*w)
Yea。我用过。不管怎样,谢谢你发布它,@kkonard@科纳德:我有个情况。我的第2列数据是u'10 km'的形式。因此,我需要将unicode转换并将“km”替换为“”。用于column2元素的函数:
lambda x:int(x.split(“”)[0])