('foo','bar')[sum(arr)%2]是什么意思?

我是 Python 新手,我遇到了 CodeWars 问题的这个解决方案(如下)

def odd_or_even(arr):
    return ('even', 'odd')[sum(arr) % 2]

我使用列表推导式解决了我的问题,但这是与我有限的理解不同的 Pythonic 概念之一,(..)[...]你能解释一下这些组合如何相互作用?

回答

这只是索引一个元组。

t = ('even', 'odd')
print(t[0])  # 'even'

他们使用模数的结果索引到 tuple 中,因为% 2结果总是 0 或 1。

不过我不会用这个。我认为他们试图通过这样写来看起来很花哨。

  • @PranavHosangadi This may just be personal opinion, but I think a conditional expression using `if sum(arr) % 2 == 0` would be a clearer way of expressing this. This seems like they're going for brevity instead of clarity.

以上是('foo','bar')[sum(arr)%2]是什么意思?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>