1

たとえば、次のコードを見てください。

if int(str(x)[len(str(x)) - 1]) == 0 or int(str(x)[len(str(x)) - 1]) == 5:
   return False

のさらに大きなリストがorあるとしたら、これを行う簡単な方法はありますか?

さて、 if を使用することがわかったので、x in ( , , , etc)これをこれにどのように実装しますか:

filter(lambda x: int(str(x)[len(str(x)) - 1]) in (0, 5), range(1000))わかりました、間違った括弧、悪い python プログラマー。

4

3 に答える 3

8

最も簡単な方法は次のとおりです。

if x in (2,3):
    ....

多数の候補値がある場合、これは線形検索になり、費用がかかる可能性があります。それが重要な場合は、セットを使用するとパフォーマンスが向上する可能性があります。

if x in set((2,3)):
    ....

セットを使用することによるパフォーマンス上の利点は、セットを 1 回インスタンス化でき、メンバーシップを複数回テストできる場合にのみ得られることに注意してください。

myset = set((2,3))
....
if x in myset:
    ....

次のように実行できる 5 で割り切れる可能性を実際にテストしているように見えます。

if x % 5 == 0:
    ....
于 2013-07-28T22:59:05.747 に答える
1

「in」演算子を使用します。

if x in (2, 3):
    pass
于 2013-07-28T23:00:08.030 に答える
0

これは機能しますか?

if int(str(x)[-1])  in (0,5):
   return False

する必要がないようにsome_array[-1]、最後の要素を返すことに注意してくださいsome_arraysome_array[len(sum_array) - 1]

于 2013-07-28T23:00:43.503 に答える