3つのリストを関数に渡して、リスト内のすべての値を反復して別の関数:ネストされたループで 'None'を渡すときに '' NoneType 'オブジェクトは反復不可能です "というエラーを回避します
def main():
l1 = [0,1]
l2 = [1,5,10,20]
l3 = [15]
my_func(l1,l2,l3)
def my_func(l1, l2, l3):
nested = ((x,y,x) for x in l1 for y in l2 for z in l3)
for x,y,z in nested:
another_func(x,y,z)
def another_func(x,y,z):
...
しかし時折私は、リストの一つとしてなし値に合格する必要があります:
l3 = None
これはエラーになります:はTypeError:「NoneType」オブジェクトが反復可能ではありませんがなぜなら、trのときにNone値が好きではないからです繰り返す。
値がNoneの場合、リストを反復から除外する方法があるのでしょうか?すべての可能な繰り返しで
list(itertools.product(*filter(None, (a,b,c))))
この意志ループとなしのためのリストをフィルタリング:
あなたは 'ネストされた=((x、y、z)を...'もしかして? –
です'l3'は' None'です、 'z'の値は何を期待していますか? –
私はそれらもNoneであると考えていましたが、それは間違っていますか? – mbadd