リスト内のNonetype要素のテスト

2020-03-26 python list recursion nonetype

このようなリストinputs = [None, None, None, None, None, None, None, None] すべての要素が同じであるかどうかを評価します。それはNoneです。 もしそうなら[]である空のリストを返します

私がこれまでに試したことはうまくいかないようです:

if all(inputs) is None: print([]) else: print("somthing else" if all(inputs) is None: print([]) else: print("somthing else" if all(inputs) is None: print([]) else: print("somthing else" if all(inputs) is None: print([]) else: print("somthing else"

Answers

allinputsを反復処理し、各要素を個別にNoneと比較する必要があります。 つまり

if all(element is None for element in inputs):
    print([])
else:
    print("something else")

all()は、それに渡すイテラブルのすべての要素がTrueかどうかを通知します。したがって、 all([True, True, True])はTrueになりますが、 all([True, False])はそうなりません。

すべての要素がNoneであるかどうかを確認したい場合、これが必要です。

all(x is None for x in inputs)

これが何をするかのすべての値をループに発電機を使用しているinputs彼らがでないかどうかをチェックする、 Noneall()をすべてチェックし、それらの結果を返すTrueそれらのすべてがある場合True

all()内のリストの要素を反復処理する必要があります。これは役立つはずです。

inputs = [None, None, None, None, None, None, None, None]

if all(i is None for i in inputs):
  print([])
else:
  print("Something Else")

Related