notコマンドを使用せずにリストが空であるかどうか調べるにはどうしたらいいですか?ここ
は、私が試したものです:`not`コマンドを使用せずにリストが空であることを確認してください
if list3[0] == []:
print "No matches found"
else:
print list3
私はダムのミスをすれば、非常に初心者にはとても恐縮しています。
notコマンドを使用せずにリストが空であるかどうか調べるにはどうしたらいいですか?ここ
は、私が試したものです:`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
あなたはAN場合、他の両方を持っている場合は、可能性も再オーダー例:
if list3:
# list has elements
else:
# list is empty
実際、空のリストはブール値の文脈では' False'です。 'len()'を明示的にテストする必要はありません。 –
フードの下では、 '1'と' 2'が実際にほとんど同じことをしていることに注意してください。 –
@ sr2222申し訳ありません。 Python 2.xの構文エラーのためコメントを削除しました。 Python 3.xでは、list3 else print( "一致するものが見つかりませんでした") 'を実行できました。 – Aya
リスト場合は、見つけます
>>> bool([])
False
>>> bool([0])
True
2番目のケースでは0
はFalseですが、リストには何かが含まれているため、[0]
がTrueです。 (あなたは、すべてのfalseyのものを収容するためのリストをテストallかanyを使用する場合:li
の任意の項目がtruthyある場合any(e for e in li)
はTrueです。)これは、このイディオムになり
:によると
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、これは適切な方法である:
• For sequences, (strings, lists, tuples), use the fact that empty sequences are 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"
:
if len(list3) == 0:
print "No matches found"
not' 'が悪いのか? – halex
学校の仕事のために、私は今は知りません。私は前に答えを探していたので、それについてしか知りません。 – user2240288
[リストが空であるかどうかをチェックする最良の方法]の複製が可能です(http://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty) –