我现在处于第5级,我认为我被困的whare的例子是最好的, 泡菜的内容是:
[(' ', 95)]
[(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)]
但是,这要长得多。
我的代码现在是:
!#/usr/bin/python3
import pickle
with open("/home/hanan/Downloads/banner.p", 'rb') as file:
file = pickle.load(file)
for line in file:
for each_item in line:
print(each_item[0]*each_item[1], end='')
我想做什么(因为我已经理解它是问题的解决方案),就是打印每个符号(例如''或#)乘以它之后的数字,所以('#',5)#标志将打印出类似#####。
我更愿意看到我当前的代码有什么问题,如果你有其他方法可以解决,我很乐意看到它。
编辑:经过一番思考后,我在这里看到,pickle文件实际上包含一个列表列表,并且在每个第二个列表(上面的代码行)中都有项目(each_item),它们是元组类型(基本上)它们就像列表但不能改变),因此each_item [x](x =数字)。
BTW:你可以看到我使用的是python 3。
感谢。
答案 0 :(得分:2)
您不会在每行末尾打印任何新行。
请改为尝试:
for line in file:
print(''.join(c * n for c, n in line))
或者,只需在现有代码中添加对print
的调用:
for line in file:
for each_item in line:
print(each_item[0]*each_item[1], end='')
print()