2015-08-28 82 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