计算元组中的输出数量

时间:2017-08-02 12:52:34

标签: python python-3.x for-loop count

希望这很简单。我已经浏览过论坛和谷歌,但还没有找到解决方案。

注意:我已经回答了这个问题,但希望他们可以在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”类型函数(类似于Pandas中使用的函数)来计算不同的唯一组合或排列的数量。

谢谢, 阿德里安

1 个答案:

答案 0 :(得分: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