小编use*_*229的帖子

itertools.combinations()的输出

我是python编程的新手(好吧,编程一般),所以我真的希望有人可以帮助我使用内置的itertools.combinations函数.

我试图从52张卡的列表中创建所有可能组合7卡组合的列表,即52 C 7.

所以我的代码看起来像

>>> import itertools
>>> deck = [1,2,3,4,5...,52]
>>> list_1 = list(itertools.combinations(deck,2))
>>> list_1[5]
(1, 7)
Run Code Online (Sandbox Code Playgroud)

到目前为止工作,直到我尝试7的组合

>>> all_possible_hands = list(itertools.combinations(deck,7))
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    all_possible_hands = list(itertools.combinations(deck,7))
MemoryError
Run Code Online (Sandbox Code Playgroud)

可以为较小的数据集(52 C 2)创建列表,但是当数字变大,RAM可能不足时,我会得到一个MemoryError.我用google搜索了combination()函数的工作原理,显然它输出了一个对象,我将其转换为一个列表.

当我没有list()时,控制台返回了一个内存地址(我相信).

>>> all_possible_hands = itertools.combinations(deck,7)
>>> all_possible_hands
<itertools.combinations object at 0x02E63180>
Run Code Online (Sandbox Code Playgroud)

我的问题是:内存地址是否包含我想要的数据,并且可以并以某种方式将其转换为列表或其他内容以便我可以访问列表中的各个元素?

谢谢.任何见解都将非常感激.

python list

4
推荐指数
1
解决办法
4280
查看次数

标签 统计

list ×1

python ×1