打印协议(带有dicts的列表)

时间:2014-11-24 19:48:08

标签: python list dictionary printing

我有一个列表,称为协议,在Yatzy中填充了播放器对象。每个对象都是一个包含时刻(如满屋)和值(例如20)的字典。

我想打印协议,但现在不打算如何制定代码。

我希望它看起来像这样:

玩家姓名的一行 每个玩家在“一个”时刻获得积分的一条线

等等。

到目前为止我已经尝试了这个(protokoll = protocol,momentlist =一个包含所有片刻(一个,两个等等)的列表:

def Utskrift(protokoll, momentlist):

    for key in momentlist:
        print ("%-20s" % key)
        for deltagare in protokoll:
            print (deltagare.protokoll[key], "\t",)

不起作用,错误信息说明了Spelare类,我用它来制作每个玩家。

错误消息:

Traceback (most recent call last):
  File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 160, in <module>
    meny()
  File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 139, in meny
    Utskrift(protokoll, momentlist)
  File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 93, in Utskrift
    print (deltagare.protokoll[key], "\t",)
AttributeError: 'Spelare' object has no attribute 'protokoll'

当我使用

时,事情就是这样

适用于protokoll的玩家

打印(播放器) 它没有错误地工作(虽然它没有按照我想要的方式打印)。

Uskrift功能看起来不错吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

        print (deltagare.protokoll[key], "\t",)

Spelare没有protokoll属性。如果您尝试访问Spelare的OrderedDict对象,则应使用其名称moment

        print (deltagare.moment[key], "\t",)