【问题标题】:Please explain [1,-1][x < 0] [duplicate]请解释 [1,-1][x < 0] [重复]
【发布时间】:2019-09-18 22:08:30
【问题描述】:
class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        sign = [1,-1][x < 0]
        rst = sign * int(str(abs(x))[::-1])
        return rst if -(2**31)-1 < rst < 2**31 else 0

[1,-1][x &lt; 0] 是什么意思?

【问题讨论】:

  • [1,-1] 是两个元素的列表。 [x &lt; 0] 正在使用可以是 False (0) 或 True (1) 的值来索引该列表。

标签: python python-3.x


【解决方案1】:

对于任何大于 0 的数字,表达式 x &lt; 0 将计算为 False 并且由于 int(False) 计算为 0 它返回索引 0 中第一个列表的值。

>>> 1 < 0
False
>>> int(1 < 0)
0
>>> [1, -1][int(1 < 0)]
1

对于小于 0 的值则完全相反。

>>> [1,-1][1 < 0]
1
>>> [1,-1][-1 < 0]
-1

-1 if x &lt; 0 else 1一样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2017-11-28
    • 2011-08-28
    • 2013-03-07
    • 2021-01-24
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多