在python中使用两个for循环

use*_*575 4 python combinations for-loop

我最近开始学习python并且有一个关于for循环的问题,我希望有人可以回答.我希望能够打印从1到10的两个数字的所有可能产品.所以:2乘2,2乘3,2乘4 ...... 2乘10,3乘2,3乘3 ... 3乘10,4乘2,4乘3等我会想到的最简单的方法是使用两个for循环,但我不确定.谁能告诉我这是怎么做的.非常感谢.asadm.

Anu*_*yal 11

这是另一种方式

a = [i*j for i in xrange(1,11) for j in xrange(i,11)]
Run Code Online (Sandbox Code Playgroud)

注意我们需要从'i'而不是1开始第二个迭代器,所以这是双倍有效的

编辑:证明它与简单的解决方案相同

b = []
for i in range(1,11):
    for j in range(1,11):
        b.append(i*j)

print set(a) == set(b)
Run Code Online (Sandbox Code Playgroud)


Lup*_*uch 7

for i in range(1, 11):
    for j in range(1, 11):
        print i * j
Run Code Online (Sandbox Code Playgroud)


wr.*_*wr. 5

只是为了好玩(和itertools上瘾的SO读者)只使用一个for循环:

from itertools import product
for i,j in product(xrange(1,11), xrange(1,11)):
    print i*j
Run Code Online (Sandbox Code Playgroud)

编辑:使用Hank Gay建议的xrange