部分字符串格式

发布于 2021-01-29 19:21:39

是否可以使用类似于字符串模板safe_substitute()功能的高级字符串格式化方法进行部分字符串格式化?

例如:

s = '{foo} {bar}'
s.format(foo='FOO') #Problem: raises KeyError 'bar'
关注者
0
被浏览
144
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以通过覆盖映射将其欺骗为部分格式:

    import string
    
    class FormatDict(dict):
        def __missing__(self, key):
            return "{" + key + "}"
    
    s = '{foo} {bar}'
    formatter = string.Formatter()
    mapping = FormatDict(foo='FOO')
    print(formatter.vformat(s, (), mapping))
    

    印刷

    FOO {bar}
    

    当然,此基本实现仅在基本情况下正确运行。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看