リストまたは dict が python に存在するかどうかを確認する最も簡単な方法は何ですか?
以下を使用していますが、これは機能していません。
if len(list) == 0:
print "Im not here"
ありがとう、
リストまたは dict が python に存在するかどうかを確認する最も簡単な方法は何ですか?
以下を使用していますが、これは機能していません。
if len(list) == 0:
print "Im not here"
ありがとう、
try/except ブロックを使用できます。
try:
#work with list
except NameError:
print "list isn't defined"
リストの場合:
if a_list:
print "I'm not here"
同じことが辞書にも当てはまります:
if a_dict:
print "I'm not here"
存在しない変数を参照しようとすると、インタープリターはNameError
. ただし、コード内の変数の存在に依存するのは安全ではありません (None などに初期化することをお勧めします)。時々私はこれを使用しました:
try:
mylist
print "I'm here"
except NameError:
print "I'm not here"
名前を付けることができる場合-明らかに「存在する」-「空でない」ことを確認するつもりだと思います...最もpythonicな方法はを使用することif varname:
です。結果が常にTrue
.
特定のインデックス/キーを使用したいだけの場合は、それを試して使用してください。
try:
print someobj[5]
except (KeyError, IndexError) as e: # For dict, list|tuple
print 'could not get it'
例:
mylist=[1,2,3]
'mylist' in locals().keys()
またはこれを使用します:
mylist in locals().values()
簡単なコンソール テスト:
>>> if len(b) == 0: print "Ups!"
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
>>> try:
... len(b)
... except Exception as e:
... print e
...
name 'b' is not defined
例は、リストに要素があるかどうかを確認する方法を示しています。
alist = [1,2,3]
if alist: print "I'm here!"
Output: I'm here!
さもないと:
alist = []
if not alist: print "Somebody here?"
Output: Somebody here?
リスト/タプルの存在/非存在を確認する必要がある場合、これが役立つかもしれません:
from types import ListType, TupleType
a_list = [1,2,3,4]
a_tuple = (1,2,3,4)
# for an existing/nonexisting list
# "a_list" in globals() check if "a_list" is defined (not undefined :p)
if "a_list" in globals() and type(a_list) is ListType:
print "I'm a list, therefore I am an existing list! :)"
# for an existing/nonexisting tuple
if "a_tuple" in globals() and type(a_tuple) is TupleType:
print "I'm a tuple, therefore I am an existing tuple! :)"
globals()で of を避ける必要がある場合は、おそらくこれを使用できます。
from types import ListType, TupleType
try:
# for an existing/nonexisting list
if type(ima_list) is ListType:
print "I'm a list, therefore I am an existing list! :)"
# for an existing/nonexisting tuple
if type(ima_tuple) is TupleType:
print "I'm a tuple, therefore I am an existing tuple! :)"
except Exception, e:
print "%s" % e
Output:
name 'ima_list' is not defined
---
name 'ima_tuple' is not defined
参考文献: 8.15。types — 組み込み型の名前 — Python v2.7.3 ドキュメント https://docs.python.org/3/library/types.html