有没有办法查看字典中的哪些键在解包以进行字符串格式化时未被使用?
例子:
> format_dict = {'first': 'think', 'second': 'am', 'third': 'never'}
> format_str = 'I {first}, therefore I {second}'
> print(format_str.format(**format_dict))
I think, therefore I am
但在这种情况下我真正想知道的是 key third 从未被使用过。有什么办法可以得到这些信息吗?
请您参考如下方法:
这里不需要摆弄正则表达式,使用官方的 string.Formatter.parse ( doc ):
import string
format_dict = {'first': 'think', 'second': 'am', 'third': 'never'}
format_str = 'I {first}, therefore I {second}'
format_keys = [i[1] for i in string.Formatter().parse(format_str)]
print(set(format_dict.keys()) - set(format_keys))
打印:
{'third'}
