在PyCharm中交换文字字典的所有键:值对

时间:2018-03-27 19:50:59

标签: python regex pycharm

偶尔我会写出一个字面词典然后意识到我无意中交换了键/值:

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。我不知道该怎么做。

0 个答案:

没有答案