-3

私はこのようなループを持っています

for a in list1:
     for b in list2:
         for c in list3:
             print "Hello"

if else ステートメントを使用せずに。すべてのリストに要素がある場合は通常どおり繰り返す必要がありますが、リストが空の場合は for ループが存在しないように動作し、その下のコードを 1 回実行する必要があります

list3が空で要素をlist2含み2、要素が 1 つある場合のように、 2 回list1表示する必要がありますhello

4

1 に答える 1

8
for a in list1 or [None]:
     for b in list2 or [None]:
         for c in list3 or [None]:
             print "Hello"

Noneinは[None]、他の単一のオブジェクトに置き換えることができます。

このようにして、空のリストが 1 つの要素を持つリストに置き換えられ、ループが 1 回続行されます。

他の方法 (変数 と が重要でない場合a)は次のようになりますbc

for i in xrange(max(len(list1), 1) * max(len(list2), 1) * max(len(list2), 1))):
    print 'Hello'

アップデート

私のコードを正しく適応させずに使用するというあなたの考え:

for m,n in zip(l1,l2) or [None]:

次を使用して修正できます。

for m,n in zip(l1 or [None], l2 or [None]):

また

for m,n in zip(l1, l2) or [[None, None]]:
于 2013-04-26T07:44:32.850 に答える