我需要将其打印为:
....
....
....
目前我有这个:
def main():
rows=3
col=4
values=[[0,0,0,0],
[0,0,0,0],
[0,0,0,0]]
for i in range(rows):
for j in range(col):
values[i][j]='.'
print(values)
main()
将打印 [['。','。','。','。'],['。','。','。','。'],['。','。','。', '']
有没有办法让它看起来更好?
答案 0 :(得分:2)
for x in range(3):
print('.'*4) # when you multiply a string with n, it produces n string
输出
....
....
....
修改代码:
def main():
rows=3
col=4
values=[[0,0,0,0],
[0,0,0,0],
[0,0,0,0]]
for i in range(rows):
print("".join('.' for j in range(col)))
main()
输出:
....
....
....
答案 1 :(得分:1)
这适用于具有任何类型值的任何大小的数组:
print('\n'.join(' '.join(str(x) for x in row) for row in values))
更长更清晰:
lines = []
for row in values:
lines.append(' '.join(str(x) for x in row))
print('\n'.join(lines))
答案 2 :(得分:0)
如果您不需要values
对象,并且只是为了让它更容易打印而构建它......请不要这样做,只需使用Hackaholic's solution。
但是如果您确实需要values
对象,或者您已经拥有它并且想要知道如何打印它,那就这样做:
print('\n'.join(''.join(row) for row in values))
或者,更明确地说:
for row in values:
line = ''.join(row)
print(line)
或者,更明确地说:
for row in values:
for col in row:
print(col, end='')
print()
答案 3 :(得分:0)
如果你不需要,或者不想在这个问题上使用数组或for循环,这里有很多方法可以做到。
# Dynamic and easy to customize, and also what I would use if I needed
# to print more than once.
def print_chars(char=".",n_of_chars=4,n_of_lines=4):
single_line = (char * n_of_chars) + '\n'
print(single_line * n_of_lines)
print_chars()
....
....
....
....
# or maybe you want 2 rows of 10 dashes?
print_chars('-',10,2)
----------
----------
# 2 rows of 5 smileys?
print_chars(':-) ',5,2)
:-) :-) :-) :-) :-)
:-) :-) :-) :-) :-)
# If your only going to use it once maybe this
print((('.' * 4) + '\n') * 4)
# or this
print('....\n' * 4)
可能有一种方法可以更快或更pythonic,但嘿。 最后你的需求或编码风格可能会有所不同,我敢打赌,有很多很多的方法可以用python做同样的事情。你只需要记住可读性和速度都是你的朋友,但他们通常不喜欢彼此。(虽然这样的简单事情几乎总是很容易在python中阅读。)
好吧,那是我的2美分。 : - )答案 4 :(得分:-1)
您正在打印一个变量,这是一个数组,您需要在循环中打印。并且您不需要一个满0的数组。
for i in range (0, 5):
for j in range (0, 5):
print ".",
print "\n"