在 Python 中创建带有嵌套 For 循环的数字列表

Creating a number list with nested For loops in Python

我已经为此工作了四个多小时,并且我尝试检查了几个资源。

我想得到这样的东西:

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

我目前的代码是:

for i in range(10):
    print(i, end = '')
    for j in range(10):
        print(j, end = '')
    print()

打印如下:

00123456789
10123456789
20123456789
30123456789
40123456789
50123456789
60123456789
70123456789
80123456789
90123456789

所以我只需要摆脱最左边的部分。此外,我正在尝试生成如下所示的内容:

0

0 1

0 1 2

0 1 2 3

0 1 2 3 4

0 1 2 3 4 5

0 1 2 3 4 5 6

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8

0 1 2 3 4 5 6 7 8 9

我可以从这里得到:

triangle = ''
n = 9
for i in range(0, n+1):
    triangle = triangle + (str(i))
    print(triangle)
print()


for i in range(11):
    for j in range(0+i):
        print(j,end=" ")
    print()

第一个的问题是没有两个 for 循环,一个嵌套在另一个循环中。第二个问题是我的范围是 11 以使其打印到 9。

最后,我正在为此努力:

10

11 12

13 14 15

16 17 18 19

20 21 22 23 24

25 26 27 28 29 30

31 32 33 34 35 36 37

38 39 40 41 42 43 44 45

46 47 48 49 50 51 52 53 54

我一直在用这个:

x = 10 
for i in range (10):
    print (*range (x, x+i)) 
    x += i

但是我需要两个 for 循环。感觉已经很接近了,就是拿不到成品。

谢谢。

第一个代码的问题是您正在打印 i ,您不需要打印 i 。代码类似于 -

for i in range(10):
    for j in range(10):
        print(j, end = ' ')
    print()

对于问题的其余部分,如果您在没有嵌套循环的情况下得到答案,为什么需要嵌套循环?

对于第一个例子,试试这个:

print('', end = '')

对于第二个实例,错误是您将 0 添加到第二个 for 循环。将其更改为:

for j in range(0, 1+i):

range 的问题是,它一直持续到低一个数字。看看docs

对于最后一个,您可以使用以下代码,其中 y 从 10 开始。

y = 10
for i in range(0,10):
    for j in range(0, i):
        print(y + j, end=' ')
    print('')
    y += i

这是如何去做的 -

首先很简单

ht = 10
y = range(ht)
"\n".join(map(lambda x: " ".join(map(str,x)), [y]*ht))

第二个有点意思

ht = 10
y = range(ht)

for i in range(1, ht+1):
    print "  ".join(map(str, y[0:i]))

第三个

start = 10
ht = 9
limit = (ht*(ht+1))/2 # using the sum of n to find out total elements
y = range(start, limit+1)
for i in range(1, ht+1):
    print " ".join(map(str, y[0:i]))
    y =  y[i:]

复杂的map(str, y)只是为了得到一个要打印的字符串。

这是你想要的吗?