我有以下方法来打印嵌套列表:
def stringify(self, item=None):
if isinstance(item, list):
return [self.stringify(subitem) for subitem in item]
if isinstance(item, Token):
return str(item)
它根据它的 __str__
方法打印这样的项目:
["<PLUS: '+'>", "<NUMBER: '2.0'>", ["<TIMES: '*'>", "<NUMBER: '3.0'>", "<NUMBER: '4.0'>"]] ["<USER_DEFINED: 'factorial'>", "<NUMBER: '5.0'>"]
但是,我不希望它在项目本身周围显示 "
。也就是说,我希望它像这样打印:
[<PLUS: '+'>, <NUMBER: '2.0'>, ...
我该怎么做?
最佳答案
最后,您将返回一个字符串列表,而不是将列表转换为字符串。 list.__str__
总是在其元素上调用 repr
,因此您会得到明确的引号。为避免这种情况,您可以使用 str.join
绕过 repr
:
if isinstance(item, list):
return '[' + ', '.join(self.stringify(subitem) for subitem in item) + ']'
关于python - 打印列表时如何去掉字符串引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66838478/