python - 打印列表时如何去掉字符串引号?

标签 python

我有以下方法来打印嵌套列表:

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/

相关文章:

javascript - Python 3、网络抓取和 Javascript [Oh My]

python - 在 python argparse 中,是否有 nargs=1 的用例?

python - 如何使用python客户端访问远程服务器上的Hive

Python - 如何读取从 S3 存储桶中检索到的 CSV 文件?

python - 请求工具带上传一个巨大的文件

python - 2D Numpy 数组到 Numpy 数组列表

python - 从 HTML 文档中提取 CSS 和 HTML 注释 (Python)

python - Pydev、eclipse 和 pythonpath 问题

Python 比已编译的 Haskell 更快?

python - Python 中的 {!text!} 是什么?