也许这是一个琐碎的问题,但是如果有一种更优雅的方法可以在不使用条件或类型转换的情况下将int值转换为0或1的话,我找不到答案? 现在我只有以下几种变体,而且都很丑陋:
x = 5
a = some_int_value * (1 if x > 0 else 0)
b = some_int_value * int(bool(x))
x
为非负值。问题来源:stackoverflow
没有函数,强制转换或条件但具有 比较的另一种方式:
d = some_int_value * (x > 0)
但是,就可读性而言,三元... if ... else ...
应该更可取。
*如果您希望使用纯数学方法,则可以使用1-0 x的幂运算,因为只有当 x == 0和0时,0 * x才是1 。但是,这是否以任何方式清楚是另一个问题。(还要注意,这为x <0
除以零,但是您说您没有这些。) >>> x = 5 >>> 1 - 0*x 1 >>> x = 0 >>> 1 - 0*x 0
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。