【问题标题】:Is there a way to simplify "if x == 1 and y == 2:"有没有办法简化“如果 x == 1 和 y == 2:”
【发布时间】:2014-11-29 19:41:27
【问题描述】:

有没有办法简化:

if x == 1 and y == 2 and z == 3:

if x == 1 and y == 1 and z == 1:

if x == 1 or y == 2 or z == 3:


if x == 1 or x == 2 被简化为if x in [1, 2]:

【问题讨论】:

  • 使用德摩根的规则?
  • 是的,非常感谢!

标签: python-3.x simplify simplification


【解决方案1】:

您的其中一个示例与其他示例不同and 表单可以很容易地简化:

if x == 1 and y == 2 and z == 3:

变成:

if (x, y, z) == (1, 2, 3):

但是,or 表单再简洁不过了。可以改写为:

if any(a == b for a, b in zip((x, y, z), (1, 2, 3))):

但这很难“简化”

【讨论】:

  • 很抱歉再次提出这个问题,但if (x,y,z) == (1,1,1): 也可以简化为if {x,y,z} == {1}:。对吗?
  • 何不试试看呢?
猜你喜欢
  • 1970-01-01
  • 2022-11-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 2021-06-24
  • 1970-01-01
相关资源
最近更新 更多