再会!
我写了一行代码:
combined_elements = combinations(glob_elem, m)
我的任务是计算组合元素的数量......
我这样解决了这个问题:
comb_length = len(list(combined_elements))
但是有这样一个问题,如果我输入函数的数组里面的元素combinations()超过84,它就会给我MemoryError,程序就会停止工作……
但是,如果我注释掉或删除该行comb_length = len(list(combined_elements))并将长度为 1000 的数组传递给函数combinations(),它将无错地执行它。
然后我尝试了第二种方式:
def get_length(my_combined_list):
length = 0
try:
while my_combined_list.next():
length += 1
except StopIteration:
#ignored
return length
第二个作品,但不幸的是很长一段时间......
您还能如何计算生成的元素组合的数量?
如果你的任务只是计算元素的数量,那么它可以简化为计算组合的数量:
这是因为该函数
combinations是惰性的——它返回一个迭代器,只有在迭代它时才会计算真正的数据(list例如使用)。