我试着看其他线程,但仍然无法弄清楚。
我正在使用此代码:
numbers = [5,1,5,2,4]
for i in numbers:
for x in range(0,i):
print "*",
print""
打印:
* * * * *
*
* * * * *
* *
* * * *
等
我想要打印:
* *
* * *
* * *
* * * *
* * * * *
我理解我必须对空格使用if
语句或*
感谢任何帮助
答案 0 :(得分:2)
实际上,您甚至可以将*
用于3种不同的事情!
>>> from itertools import izip_longest
>>> for x in reversed(list(izip_longest(*['*'*n for n in numbers], fillvalue=' '))):
... print ' '.join(x)
...
* *
* * *
* * *
* * * *
* * * * *
答案 1 :(得分:2)
numbers = [5,1,5,2,4]
for m in xrange(max(numbers)-1,0,-1):
line = map (lambda x : '*' if x >= m else ' ' , numbers)
print " ".join(line)
答案 2 :(得分:2)
numbers = [5,1,5,2,4]
for h in range(max(numbers), 0, -1):
for x in numbers:
if x >= h:
print '*',
else:
print ' ',
print ""
或更短的版本。
for h in range(max(numbers), 0, -1):
print ' '.join('*' if x >= h else ' ' for x in numbers)