在PyCharm中如何快速交换字面量字典的所有键值对?
高效交换Python字典键值对的几种方案
嘿,我太懂你这种不小心把字典键值写反,还要手动逐个修改的崩溃了!尤其是字典很长的时候,那简直是折磨。下面给你几个比复制到解释器更高效的办法:
1. 编辑器正则替换(最推荐!不用离开代码)
几乎所有主流编辑器(VS Code、PyCharm、Sublime等)都支持正则批量替换,直接在你的代码里就能搞定:
- 打开编辑器的替换功能(一般是
Ctrl+H/Cmd+H) - 开启正则匹配模式(通常是替换框旁边的
.*图标) - 查找内容:
"([^"]+)":"([^"]+)" - 替换内容:
"\2":"\1" - 点击全部替换,瞬间所有键值对就交换完成了!
这个正则的逻辑是匹配"A":"B"格式的键值对,然后把捕获到的第一个分组(A)和第二个分组(B)互换位置,完美适配字符串类型的键值。
2. 命令行快速执行(不用打开解释器)
如果你不想动编辑器,可以直接在终端里一行命令搞定:
python -c "MY_DICT = {'VALUE1':'KEY1', 'VALUE2':'KEY2'}; print({v:k for k,v in MY_DICT.items()})"
把你的字典内容替换进去,执行后直接复制输出的结果就行,比打开Python解释器再输入代码快得多。
3. 编辑器宏(适合重复操作场景)
如果你经常遇到这种情况,可以给编辑器录制一个宏:
比如在PyCharm里,你可以录制“选中键值对→交换位置”的操作,之后只要按快捷键就能重复执行,适合字典格式比较规整的情况。不过相比正则,这个灵活性稍差一点。
另外要注意:如果你的字典里有重复的值,交换后会丢失数据(因为字典键唯一),所以执行前最好确认一下值都是唯一的哦!
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

