2012-11-24 101 views
1

我正在一個項目中,我有一個列表,其中包含一個字典和int的元組。我試圖通過每個字典搜索名字,但我遇到了一些麻煩。字典和整數的元組列表,如何通過每個字典搜索

dicts = [ (somedict, 0), (someOtherDict, 5)] 

之前,我只是有類型的字典列表,所以我可以很容易地通過與

def search(name): 
    for d in reversed(dicts): 
     if name in d: return d[name] 

搜索,但現在我有一個元組列表,我不太清楚如何通過字典搜索。任何幫助或建議將不勝感激。我現在很困惑。

回答

3

只需使用一臺發電機的表達讓你的類型的字典:

def search(name): 
    for d in (t[0] for t in dicts): 
        if name in d: return d[name] 

或者您可以使用元組分配:

def search(name): 
    for d, _ in dicts: 
        if name in d: return d[name] 

但假定所有的元組具有2倍的值。

+0

是否還有一種簡單的方法可以將某些東西添加到給定的字典中?在我必須合併元組之前,我可以使用 dictstack [-1] [name] = value 但是現在我已經在一個包含字典的元組列表中,我有點迷路了。 –

+0

'dictstack [-1] [0] [name] = value',再添加一個等級:-) –

0

您需要將枚舉字典的結果編入索引0,因爲這是dict/int元組中的字典。

def search(name): 
    for d in reversed(dicts): 
     if name in d[0]: return d[0][name]