質問は少し曖昧だと思いますが、私の刺し傷は次のとおりです。
OPがリストの製品を探しているのだろうかと思いますが。
おそらく、OP がitertools-functionsを調べた場合、適切なものが表示される可能性があります。
import random
list1 = random.sample(range(50), 3)
list2 = random.sample(range(50), 2)
print "List1", list1
print "List2", list2
def router(a, b):
print "ROUTER", a, b
if a == None:
return b * 10
elif b == None:
return a * 10
else:
return (a + b ) * 10
print map(router, list1, list2)
##########################
# Using itertools.product
##########################
import itertools
def pair(p):
a, b = p
print "PAIR", a, b
if a == None:
return b * 10
elif b == None:
return a * 10
else:
return (a + b ) * 10
product = itertools.product(*zip(*map(None, list1, list2)))
print map(pair, product)
出力
List1 [17, 48, 9]
List2 [45, 42]
ROUTER 17 45
ROUTER 48 42
ROUTER 9 None
[620, 900, 90]
PAIR 17 45
PAIR 17 42
PAIR 17 None
PAIR 48 45
PAIR 48 42
PAIR 48 None
PAIR 9 45
PAIR 9 42
PAIR 9 None
[620, 590, 170, 930, 900, 480, 540, 510, 90]