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、 2 回計算するという欠点があります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 がコメントで述べているように、最後の方法は読み取りと書き込みがより明確であるだけでなく、値を 1 回だけ評価します。これは、関数呼び出しの場合に重要になる可能性があります。

于 2011-07-15T07:45:15.657 に答える