我认为这个问题有点含糊,但我的想法如下:
虽然我想知道 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]