python3 数组连接问题 [1] + [2] if False else [3]

a = [1]
b = [2]
c = [3]

a += b if False else c
print(a) # [1,3] 没错,很符合逻辑。

a = a + b if False else c
print(a) # [3] 这到底是为什么?
阅读 1.9k
2 个回答

优先级的问题,a + b if False else c的分支是a + bc,等效于(a + b) if False else c,你期望的应该是a + (b if False else c)

a += b if False else c 等价于:

if False:
    a += b
else:
    a += c

a = a + b if False else c 等价于:

if False:
    a = a + b
else:
    a = c
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题