希望这很简单。我已经浏览过论坛和谷歌,但还没有找到解决方案。
注意:我已经回答了这个问题,但希望他们可以在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中使用的函数)来计算不同的唯一组合或排列的数量。
谢谢, 阿德里安
答案 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