2015-08-28 66 views
0

我有一个要求,我要传递一组用逗号分隔的函数列表。从python列表中删除外部列表

searchTerms = ["a", "c", "d"] 

stringList = ['a', 'b', 'c', 'd', 'a'] 

d = dict() 

for j in range(len(searchTerms)): 

    for i in range(len(stringList)): 

     if searchTerms[j] == stringList[i]: 

      d.setdefault(j, []).append(i) 

print d.values() 

,如果你运行上面的代码的输出将是[[0, 4], [2], [3]]但我需要通过[0, 4], [2], [3]的功能。任何人都可以告诉我如何从这里删除外部列表。

总之转换[[0, 4], [2], [3]]------>[0, 4], [2], [3]。由于

我想将它发送给这个函数:

for element in itertools.product([0, 4], [2], [3]): 

    sortedList = sorted(list(element)) 
+1

你试过'(X,Y,Z)= d.values()',然后通过X,Y ,z到你的功能? –

+0

看到我编辑的问题。我也添加了该功能。我无法嵌入这些值,我需要通过它。我想在某处存储'[0,4],[2],[3]'然后传递它。可能吗? – python

回答

1

像这样:

*[[0, 4], [2], [3]] 

希望它能帮助!


例子:

>>> def f(a, b, c): 
... print(a, b, c) 
... 
>>> f(*[1, 2, 3]) 
1 2 3 

你的情况:

for element in itertools.product(*d.values()): 
    sortedList = sorted(list(element)) 
+0

你能详细解释一下吗? – python

+0

@RakeshRanjanSukla查看示例。 – cdonts

+0

是否可以在某处存储'[0,4],[2],[3]'然后传递它?因为参数的数量在这里是动态的。我已经在我的问题中添加了这个函数,但是这需要动态参数。 – python