[英]Delete elements from dicts in list if value of dict key is in otherlist
[英]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.