web-dev-qa-db-ja.com

python "vs" a "ステートメントの場合は" "

私の同僚はこのようにして使用しています

if len(A) is not 0:
    print('A is not empty')
 _

私はこれを好む

if A:
    print('A is not empty')
 _

Prop-Sons引数とは何ですか?

彼女のポイントは、最初の方法は彼女が正確に欲しいものを示すためのより直接的な方法です。私の点は私の道が短いということです。

また、最初の方法は2倍の速いです。

>>> import timeit
>>> timeit.timeit('len(A) is not 0', setup='A=[1,2,3]')
0.048459101999924314
>>> timeit.timeit('bool(A)', setup='A=[1,2,3]')
0.09833707799998592
 _

しかし

>>> import timeit
>>> timeit.timeit('if len(A) is not 0:\n  pass', setup='A=[1,2,3]')
0.06600062699999398
>>> timeit.timeit('if A:\n  pass', setup='A=[1,2,3]')
0.011816206999810674 
 _

2回目の方法で6倍速く!私はifの働きを混乱させています:-)

8
vladimirfol

1。

if len(A) is not 0:
    print('A is not empty')
 _

2。

if A:
    print('A is not empty')
 _

第1の方法と2番目の方法の違いは、LEN()ファクトルをサポートしているが、LEN()のファクトルをサポートしているように、LEN(a)のみを使用できるということですが、データやキャラクターのようなLEN()の職務を使用することはできません。文字列、整数(数字)。

例えば:

len(123)、Len(ABC)、Len(123ABC):エラーを発生させます。

しかし、list = [1,2,3,4,5]

len(リスト)はエラーを発生させません

if A:
    statement  # this is useful while our only concern is that the variable A has some value or not 
 _
2
Abhishek-Saini