2013-03-10 41 views
0

我需要在列表/列中查找可能的組合(兩對),並在相對列/列表上執行相對操作。就像,減去對的值。Python:在列中查找組合並使用索引值執行相關操作

例 輸入:

column 1 column2 
A   10 
C   20 
B   30 

輸出

column1 coulum2 #internal operation 
[A,B] -20  A-B 
[A,C] -10  A-C 
[C,B] -10  C-B 

我已經使用itertools.combinations對於組合。

任何提示要做到這一點?

+0

是的。我已經從文件中讀取了值。我也有可能的組合。 – Zero 2013-03-10 15:41:05

+0

那麼究竟是什麼問題呢?你想達到什麼目的? – 2013-03-10 15:44:05

+0

我發佈了演示示例。如果我有兩列。一個與[A,B,C]和其他與他們的價值觀[10,20,30]。我需要得到減法的值(pair(A,B))。即組合[A,B],我需要輸出值= 10-30 = -10。通過itertools.combinations,我可以獲得所有組合。但是,不是這種操作或指數在組合上的位置。 – Zero 2013-03-10 15:48:40

回答

1

把你的初始欄放到地圖P(P = {'A': 10, ..}等),而不是隻計算w = [((c1, c2), P[c1] - P[c2]) for c1, c2 in itertools.combinations(P.keys(), 2)]。它應該包含您想要放入結果列的所有數據。

要按列獲得數據:letters_pairs, values = zip(*w)

+0

作品魅力!不過需要將這些值分成單獨的列表。 – Zero 2013-03-10 16:21:34

+0

只需使用'zip'。讓'w = [((c1,c2),P [c1] - P [c2])代替itertools.combinations(P.keys(),2)]中的c1,c2, * w)' – kkonrad 2013-03-10 16:36:21

+0

是的。我用它。無論如何感謝發佈,@ kkonard! – Zero 2013-03-10 16:48:00

相關問題