我怀疑我缺少一些超级基本的东西,只是看错了这个问题所以如果有人能指出我正确的方向,我会很高兴.这是我的问题:
我有一个变量列表,为简单起见,它们总是包含值.我想让我的代码通过所有可能的选项.这是我很快想到的方式:
num_apples = 100
num_pears = 100
for current_apple in range(0,num_apples+1):
for current_pear in range(0, num_pears+1):
print current_apple, " - ", current_pear
Run Code Online (Sandbox Code Playgroud)
关于这段代码的好处是我可以轻松地摆脱循环(即说我不希望current_apple + current_pear> 50或者其他东西),但主要的缺点是我需要具体知道有多少变量(在这种情况下是水果)我开始时常常不知道.
有没有办法动态创建上面的for循环类型结构,所以我可以控制何时打破一个子循环,但不知道具体提前我有多少变量?
编辑:理想情况下,我认为这对我来说会更容易,如果我可以一次增加一个变量的大小,那么一旦变量超出对我有用的范围,我就可以突破循环.
itertools.product 相当于嵌套for循环.
https://docs.python.org/2/library/itertools.html#itertools.product
>>> import itertools
>>> counts = [1, 2, 3]
>>> ranges = [range(x) for x in counts]
>>> for i in itertools.product(*ranges):
... print i
...
(0, 0, 0)
(0, 0, 1)
(0, 0, 2)
(0, 1, 0)
(0, 1, 1)
(0, 1, 2)
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |