Skip to main content
 首页 » 编程设计

python之在两个值之间切换变量的大多数 pythonic 方法

2025年05月04日16小虾米

我有一个变量 p,它是正则表达式匹配的输出,在任何混合情况下都保证为“真”或“假”。如果是“真”,我希望它是“假”,如果是“假”,我希望它是“真”。最终结果始终为大写。

我想到了以下四种方法。哪个是最 pythonic 的还是有更好的?

p=['TRUE','FALSE'][eval(p.capitalize())] 
p=(not eval(p.capitalize())).__repr__().upper() 
p='FALSE' if eval(p.capitalize()) else 'TRUE' 
p={'TRUE':'FALSE','FALSE':'TRUE'}[p.upper()] 

请您参考如下方法:

IMO,最 pythonic 的方法不是使用 eval,也不是 dunders,也不是使用 2 元素列表索引,它是一个简单的 if-else 条件(或三元):

p = 'TRUE' if p.upper() == 'FALSE' else 'FALSE' 

它不使用黑客或诡计,它简单且(更重要的是)可读。