2017-08-02 49 views
0

希望這是一個簡單的方法。我瀏覽了論壇和谷歌,但還沒有找到解決方案。計算Tuple中的輸出數

注意:我已經回答了這個問題,但希望他們可能是一種在Python中做到這一點的方法。

問題:我想統計for循環中不同迭代次數(組合)的數量。我已經完成了這個工作,枚舉確實有幫助,但是它會在新組合開始時重新啓動。解決這個問題的方法是將列表保存爲CSV並計算Excel中的組合(這並不壞),但我希望有一種方法可以在Python中返回此數字。

import itertools 
import pandas as pd 
import numpy as np 
import csv 

stuff = ['imp1', 'imp2', 'imp3','imp4', 'click1', 'click2', 'click3', 'click4'] 

results = [] 

for combination in range(0, len(stuff) + 1): 
    for subset in enumerate(itertools.combinations_with_replacement(stuff, combination)): 
     results.append(subset) 

with open('Combinations_1.csv', 'wb') as myfile: 
    wr = csv.writer(myfile, quoting=csv.QUOTE_ALL) 
    wr.writerow(results) 

總之,這給了我什麼,我需要,但我不知道是否有一個「value_counts」型功能(類似於大熊貓用於什麼)來計算不同的獨特的組合或置換的數量。

感謝, 阿德里安

+1

你爲什麼不使用實施你的循環中有一個簡單的計數器?它應該在每個''results.append(subset)'後更新。例如'count + = 1' – CunivL

回答

1

您需要添加一個計數器變量,並把它裏面的for循環:

ls = [] 
count = 0 
for element in enumerate(range(10)): 
    ls.append(element) 
    count += 1 

print count 

10 

在你的代碼

results = [] 
count = 0 

for combination in range(0, len(stuff) + 1): 
    for subset in enumerate(itertools.combinations_with_replacement(stuff, 
    combination)): 
     results.append(subset) 
     count += 1 
+0

這兩個工作都很完美。謝謝。知道這將是簡單的,我沒有想到!感謝你幫助我。 – AdrianC