2011-06-29 9 views

答えて

24

リストを索引付けしてください。

print L[1]['d'] 
5

あなたは正確な答えを提供するのに十分な文脈提供していない(のすなわちどのように複数のdictsに、同一のキーを処理しますか?)

一つの答えは、リストを反復処理し、取得しようとすることです「D」キーが存在することを知っている必要がありますけれども

mylist = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}] 
myvalues = [i['d'] for i in mylist if 'd' in i] 

もう一つの答えは、(リストインデックスで)直接辞書にアクセスすることである

mylist[1]['d'] 
+0

ありがとうございます.. – Vinodh

+4

@raja:私に感謝する必要はありません、特に私に電話する必要はありませんサー! :)あなたが役に立つと思う答えをupvoteすることを忘れないでください。 –

5

あなたが探しているキーが一覧にあるdictを知っているなら、あなたはすでに解決策を持っています(MattとIgnacioの提示どおり)。しかし、あなたは、あなたがこれを行うことができ、このキーを持っている辞書わからない場合:すべての

def getValueOf(k, L): 
    for d in L: 
     if k in d: 
      return d[k] 
+1

'k in d'の場合: 'k in d:'を修正する。 –

+0

@Artsiom:いいキャッチ – inspectorG4dget

+0

あなたは歓迎です –

12

まず変数名として「リスト」を使用していません。あなたがユニークキーで簡単な辞書を持っている場合、あなたは次の操作を行うことができます

(サブ辞書から全てのアイテムを持つ新しい辞書オブジェクトが作成されることに注意してください):

res = {} 
for line in listOfDicts: 
    res.update(line) 
res['d'] 
>>> 4 

そうでない場合:

getValues = lambda key,inputData: [subVal[key] for subVal in inputData if key in subVal] 
getValues('d', listOfDicts) 
>>> [4] 

または非常ベース:

def get_value(listOfDicts, key): 
    for subVal in listOfDicts: 
     if key in subVal: 
      return subVal[key] 
+0

あなたは歓迎です、raja –

+1

なぜdownvoteですか?何か間違っているのですか? –

+3

+1 "リストを変数名として使用しない" " –

関連する問題