2
        if(i-words < 0):
            start_point = 0
        else:
            start_point = i - words

或者这是使用最小值/最大值的最简单方法?这是用于列表拼接。

我希望 start_point 始终为 0 或更高。

4

2 回答 2

10

更好的是使限制更明显

start_point = max(i - words, 0)

这样,任何阅读的人都可以看到您正在限制一个值。

使用任何形式if的缺点是计算两次i - words。为此使用临时代码会使代码膨胀。

因此,在这些情况下使用maxand 。min

于 2011-07-15T07:48:17.187 回答
1

怎么样

start_point = 0 if i - words < 0 else i - words

或者

start_point = i - words if i - words < 0 else 0

甚至更好,最清晰的方法:

start_point = max(i - words, 0)

正如 Mihai 在他的评论中所说,最后一种方法不仅读写更清晰,而且只计算一次值,如果它是函数调用,这可能很重要。

于 2011-07-15T07:45:15.657 回答