如果我有一个字符串,它是匹配regexp[MSP]*
的输出,那么将它转换为包含键M、s和p的dict的最干净的方法是什么?如果该键出现在字符串中,则每个键的值都为真?在
例如
'MSP' => {'M': True, 'S': True, 'P': True}
'PMMM' => {'M': True, 'S': False, 'P': True}
'' => {'M': False, 'S': False, 'P': False}
'MOO' won't occur...
if it was the input to matching the regexp, 'M' would be the output
我能想到的最好办法是:
^{pr2}$但这似乎有点笨拙,我想知道有没有更好的方法。在
为什么不使用
frozenset
(或者如果需要可变性,set
)?在然后你可以使用
^{pr2}$检查标志
P
是否存在。在在较新版本的Python中,您可以使用dict理解:
在旧版本中,可以使用KennyTM指出的:
^{pr2}$这将为长字符串提供良好的性能,因为如果这三个字符都出现在字符串的开头,则搜索可以提前停止。它不需要搜索整个字符串。在
相关问题 更多 >
编程相关推荐