偶尔我会写出一个字面词典然后意识到我无意中交换了键/值:
MY_DICT = {"VALUE1":"KEY1", "VALUE2":"KEY2"} # <- WHOOPS!
有时候这样的字典可能会有点长,而且要返回并交换所有键/值是很多打字。
解决此问题的一种方法是将dict复制到解释器并执行:
{v:k for k,v in MY_DICT.values()}
...并复制/粘贴结果。但当然,这也是很多打字。
“查找”字段中的以下正则表达式将捕获具有6个条目的字典的键/值组对:
\{(.*): (.*), (.*): (.*), (.*): (.*), (.*): (.*), (.*): (.*), (.*): (.*)\}
...然后我可以在替换字段中交换它们:
{$2: $1, $4: $3, $6: $5, $8: $7, $10: $9, $12: $11}
是否有更通用的方法来执行此查找/替换?如果我能想出一些东西,我就想在我的PyCharm IDE中添加一个自定义的SwapDict
命令。
(当然,复杂的事情是,我们可能不能指望在每个冒号和逗号之后都有好的单一空格。而且键/值有时也可能包含冒号!毕竟这是现实世界。)
也许另一种方法是完全放弃正则表达式并向PyCharm传授一个新的Alt + Enter技巧:取dict
,交换键/值,并用结果替换文字dict
。我不知道该怎么做。