繁体   English   中英

使用__str__从列表返回键和值dict

[英]Return key and value dict from list with dicts using __str__

我尝试创建类,它将返回值以漂亮地打印出来。 我找到了这篇关于python __str__的文章,但是我仍然不明白如何改进我的课程。

这是我的课:

class PrintList(): 
    def __init__(self,lista):
        self.lista=lista
    def __str__(self):
        if isinstance(x[0] in self.lista, dict):           #for dicts in list
            return ','.join(str(item),'->',str(item[x]) for x in item) for item in self.lista
        else:         # for variables in list
            return ','.join(str(x) for x in self.lista)

和第一次返回的错误:

return ','.join(str(item),'->',str(item[x]) for x in item) for item in self.lista
                                                                 ^
SyntaxError: invalid syntax

我尝试得到以下结果:key_dict-> value_dict等。

您的理解/生成器表达式中肯定有无效的语法。

您应该将表达式编写如下

return ','.join("{}->{}".format(item, item[x]) for x in item for item in self.lista)

无关

与@MartijnPieter一样,对于str.join ,使用列表str.join而不是生成器表达式的速度更快,这特别是因为它需要在将数据缝合到getgeter之前先生成数据(两次通过算法)。 请参阅不带[],Python的列表理解

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM