在 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)
只是为了得到一个要打印的字符串。
这是你想要的吗?
我已经为此工作了四个多小时,并且我尝试检查了几个资源。
我想得到这样的东西:
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)
只是为了得到一个要打印的字符串。
这是你想要的吗?