python中循环到理解列表的转换
我在使用理解列表编写以下循环时遇到问题python中循环到理解列表的转换,python,list-comprehension,Python,List Comprehension,我在使用理解列表编写以下循环时遇到问题 n = input( ' enter any number: ' ) a = [] for i in range(1, n+1): b = [] for j in range(0, i): b.append( i + ((9 - j) * j) // 2) a.append(b) print(a) 实际上,问题是打印 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15
n = input( ' enter any number: ' )
a = []
for i in range(1, n+1):
b = []
for j in range(0, i):
b.append( i + ((9 - j) * j) // 2)
a.append(b)
print(a)
实际上,问题是打印
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
if n = 5
您可以使用:
In [10]: n = 5
In [11]: [[i+((9-j)*j)//2 for j in range(0, i)] for i in range(1, n+1)]
Out[11]: [[1], [2, 6], [3, 7, 10], [4, 8, 11, 13], [5, 9, 12, 14, 15]]
你是说像这样
alist = [[str(i + ((9 - j) * j) // 2) for j in range(i)] for i in range(1,n+1)]
print(*[' '.join(i) for i in alist],sep='\n')
注意:仅适用于python 3
在python 2中使用此选项:
for i in alist:
print(' '.join(i))
你可以试试
In [1]: n = input( ' enter any number: ' )
enter any number: 10
In [2]: [[i + ((9 - j) * j) // 2 for j in range(0, i)] for i in range(1, n + 1)]
Out[2]:
[[1],
[2, 6],
[3, 7, 10],
[4, 8, 11, 13],
[5, 9, 12, 14, 15],
[6, 10, 13, 15, 16, 16],
[7, 11, 14, 16, 17, 17, 16],
[8, 12, 15, 17, 18, 18, 17, 15],
[9, 13, 16, 18, 19, 19, 18, 16, 13],
[10, 14, 17, 19, 20, 20, 19, 17, 14, 10]]
In [3]:
您可以这样尝试:
total = int(input( ' enter any number: ' ))
output = [[p + ((9 - q) * q) // 2 for q in range(p)] for p in range(1,total+1)]
for ele in output:
print(ele)
输出:
enter any number: 3
[1]
[2, 6]
[3, 7, 10]
你在期待什么?