我有以下一段python代码,我无法以我想要的方式工作。这是代码:
l = [['#' for _ in range(10)] for _ in range(10)]
o = ['\n'.join(r) for r in l]
print ''.join(r for r in o)
这是当前的节目输出:
#
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
##
#
#
#
#
#
#
#
#
#
这是我希望程序输出的内容:
##########
##########
##########
##########
##########
##########
##########
##########
##########
##########
如何更改代码以获得所需的输出?
答案 0 :(得分:2)
如果你想使用join:
print '\n'.join( ''.join('#' for column in range(10)) for row in range(10))
但更容易:
print ('#'*10 + '\n')*10
答案 1 :(得分:1)
您只是以错误的顺序加入:
l = [['#' for _ in range(10)] for _ in range(10)]
o = [''.join(r) for r in l] # join the columns
print '\n'.join(r for r in o) # join the rows
或者更容易阅读:
'\n'.join((''.join(r) for r in l))
或没有l
:
(('#' * 10 + '\n') * 10)[:-1]
甚至:
'''##########
##########
##########
##########
##########
##########
##########
##########
##########
##########'''
答案 2 :(得分:0)
试试这个:
for x in range(1,11):
print "#"*10
输出:
##########
##########
##########
##########
##########
##########
##########
##########
##########
##########
说明:如果将一个字符串与一个数字相乘,它将产生重复字符串数量 演示:
>>> "a"*10
'aaaaaaaaaa'
>>> "b"*6
'bbbbbb'
>>>
答案 3 :(得分:0)
l = [['#' for _ in range(10)] for _ in range(10)]
print '\n'.join(''.join(r) for r in l)
答案 4 :(得分:0)
l
(完全浪费内存),因为您只想打印相同的字符串'##########\n'
10次。 / LI>
print
提供了结尾\n
,因此您不需要明确join()
每行。join()
复制字符串n次,只需执行'#' * 10
for _ in range(10):
print '#' * 10 # all we need is one string-constant of length 10,
# if we only want to print it, not store it