2013-01-09 65 views
0

元组的列表,我写了这个功能:建立从两个列表

def buildAllPairs(l1, l2): 
     l=[] 
     for s in l1: 
      for p in l2: 
       l.append((s, p)) 
     return l 

,但是当我在列表中使用数字,字母出来NameError,可能有人告诉我为什么会这样它只能?

+0

请添加为您提供错误的代码。你用哪个参数调用函数? – silvado

+0

对我来说似乎很好,错误可能出现在您没有发布的代码中 – StoryTeller

+0

@silvado,zip与OP试图完成的内容有不同的语义 – StoryTeller

回答

4

使用itertools.product功能:

>>> import itertools 
>>> list(itertools.product([1, 'a'], [2, 'b'])) 
[(1, 2), (1, 'b'), ('a', 2), ('a', 'b')] 

注意itertools.product()自己返回,而不是列表的itertools.product对象,基本上是一台发电机。