相关疑难解决方法(0)

动态创建嵌套for循环?

我怀疑我缺少一些超级基本的东西,只是看错了这个问题所以如果有人能指出我正确的方向,我会很高兴.这是我的问题:

我有一个变量列表,为简单起见,它们总是包含值.我想让我的代码通过所有可能的选项.这是我很快想到的方式:

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循环类型结构,所以我可以控制何时打破一个子循环,但不知道具体提前我有多少变量?

编辑:理想情况下,我认为这对我来说会更容易,如果我可以一次增加一个变量的大小,那么一旦变量超出对我有用的范围,我就可以突破循环.

python for-loop

2
推荐指数
1
解决办法
1302
查看次数

如何在python中实现n次嵌套循环?

我想做n次嵌套循环,这个n是一个变量,可以通过函数或输入方法提供.为了做到这一点,我必须写很多if..elif块取决于n的大小,有没有人有好的策略来处理这个任务?我使用的代码(用于组合4个字母的问题)如下:

def charCombination(n):
   patList = []
   s = 'ATCG'
   if n == 1:
       for i in s:
           patList.append(i)
   elif n == 2:
       for i in s:
           for j in s:
               patList.append(i+j)
   elif n == 3:
       for i in s:
           for j in s:
               for k in s:
                   patList.append(i+j+k)
   ...

   return patList
Run Code Online (Sandbox Code Playgroud)

python

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

在Python中动态创建嵌套循环

我试图找出一种方法来动态重现下面的循环结构,具体取决于我拥有的“组”的数量。有任何想法吗?提前致谢!

for a in range(len(group1)):
  for b in range(len(group2)):
    for c in range(len(group3)):
      for d in range(len(group4)):
        for e in range(len(group5)):
          for f in range(len(group6)):
            createImage(a,b,c,d,e,f,counter)
Run Code Online (Sandbox Code Playgroud)

python nested-loops

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

走两个列表(没有拉链)

这是我的实施:

def walk_two(a, b):
    for x in a:
        for y in b:
            yield x, y

a = xrange(2)
b = xrange(3)

for x, y in walk_two(a, b):
    print x, y
Run Code Online (Sandbox Code Playgroud)

有了这个输出:

0 0
0 1
0 2
1 0
1 1
1 2
Run Code Online (Sandbox Code Playgroud)

有更好的(更加pythonic)方式吗?一个内置的?更通用的walkN?

python

0
推荐指数
1
解决办法
74
查看次数

标签 统计

python ×4

for-loop ×1

nested-loops ×1