タプルのタプル内に空のタプルがない場合に true を返すテストを行うにはどうすればよいですか?
たとえばTrue
、この場合は次のように返します。
(('t2',), ('t3',), ('t4',), ('t5','t6'))
False
この場合は次を返します。
(('t2',), (), ('t3',), ('t4',))
Python3で有効になるように答えてください。
タプルのタプル内に空のタプルがない場合に true を返すテストを行うにはどうすればよいですか?
たとえばTrue
、この場合は次のように返します。
(('t2',), ('t3',), ('t4',), ('t5','t6'))
False
この場合は次を返します。
(('t2',), (), ('t3',), ('t4',))
Python3で有効になるように答えてください。
all
Python では空のタプルは falsey であるため、組み込み関数を使用できます。
Help on built-in function all in module builtins:
all(...)
all(iterable) -> bool
Return True if bool(x) is True for all values x in the iterable.
If the iterable is empty, return True.
>>> all((('t2',), ('t3',), ('t4',), ('t5', 't6')))
True
>>> all((('t2',), (), ('t3',), ('t4',)))
False
「タプルのタプル内に空のタプルはない」の反対は、「いくつかのタプルは...空です」です。同様に、「タプルのタプル内に空のタプルを見つけることができます」。
これは当然、同じように単純な (そして、わずかに読みやすいと思います) が、まったく異なる解決策につながります。
>>> () not in (('t2',), ('t3',), ('t4',), ('t5', 't6'))
True
>>> () not in (('t2',), (), ('t3',), ('t4',))
False