【问题标题】:Python Challenge - Level 5 , almost therePython Challenge - Level 5 , 差不多了
【发布时间】:2011-11-08 06:05:27
【问题描述】:

我现在在第 5 级,我认为我被卡住的那个例子是最好的, 泡菜内容是:

[(' ', 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) #标志会像 ##### 那样打印。

我更愿意看看我当前的代码有什么问题,如果你有其他方法可以解决,我会很高兴看到它。

编辑:经过一番思考,我在这里看到泡菜文件实际上包含一个列表列表,并且在每个第二个列表(上面的代码行)中都有它们元组类型的项目(each_item)(基本上它们就像列表但不能更改),因此 each_item[x] (x = number)。

顺便说一句:如您所见,我使用的是 python 3。

谢谢。

【问题讨论】:

    标签: list python-3.x


    【解决方案1】:

    您没有在每行末尾打印任何新行。

    试试这个:

    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()
    

    【讨论】:

    • 谢谢它正在工作,我想知道我错了什么,为什么要添加 print() ?
    • 好的,我明白了。再次感谢。
    • 一件事虽然我很难理解,但这是一个列表列表,所以我在上面的代码中有 each_item 变量,这是第二个列表,我打印 each_item[0 ],在这里我很难理解,为什么末尾的 0 给了我这个字符,换句话说,上面代码中的 each_item var9able 也是一个列表?因为如果是的话,pickle 文件实际上包含 3 个列表而不是两个,并且如何在没有 [ ] 符号的情况下设置第 3 个列表。希望你能理解我的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2013-06-05
    • 2011-12-17
    相关资源
    最近更新 更多