Notコマンドを使用せずにリストが空かどうかを確認するにはどうすればよいですか?
これが私が試したことです。
if list3[0] == []:
print "No matches found"
else:
print list3
私は非常に初心者ですので、間抜けな間違いをしたらすみません。
優先順に:
# Good
if not list3:
# Okay
if len(list3) == 0:
# Ugly
if list3 == []:
# Silly
try:
next(iter(list3))
# list has elements
except StopIteration:
# list is empty
Ifとelseの両方がある場合は、ケースを並べ替えることもできます。
if list3:
# list has elements
else:
# list is empty
リストが空かどうかは、その「真実」をテストすることでわかります。
>>> bool([])
False
>>> bool([0])
True
2番目の場合は0
はFalseですが、リスト[0]
は何かを含むためTrueです。 (すべての偽物を含むリストをテストしたい場合は、 all または any を使用します。any(e for e in li)
は、li
は真実です。)
これは、このイディオムになります:
if li:
# li has something in it
else:
# optional else -- li does not have something
if not li:
# react to li being empty
# optional else...
PEP 8 によると、これは適切な方法です。
•シーケンス(文字列、リスト、タプル)の場合、空のシーケンスがfalseであるという事実を使用します。
Yes: if not seq: if seq: No: if len(seq) if not len(seq)
try
を使用して、リストに特定のインデックスが存在するかどうかをテストします。
>>> try:
... li[3]=6
... except IndexError:
... print 'no bueno'
...
no bueno
したがって、コードの順序をこれに逆にすることができます。
if list3:
print list3
else:
print "No matches found"
長さを確認してください。
l = []
print len(l) == 0