有没有一种简单的方法可以用Python编写它?

时间:2011-07-15 07:43:30

标签: python numbers max min

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

或者这是使用min / max的最简单方法吗?这是用于列表拼接的。

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

2 个答案:

答案 0 :(得分:10)

更好的是使限制更明显

start_point = max(i - words, 0)

这样,任何阅读者都可以看到你限制了一个值。

使用任何形式的if都有一个缺点,就是你计算两次i - words。使用临时文件会使更多代码膨胀。

因此,在这些情况下使用maxmin

答案 1 :(得分: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在评论中所说,最后一种方式不仅更清晰地读写,而且只评估​​一次值,如果它是一个函数调用,这可能很重要。