Python で次の変数から ['a','b'] を取得しようとしています。
mylist = [{'A': ['a','b']}, {'B': ['c','d']}]
と
keys = ['A']
itemgetter を使用して回答のあるさまざまな質問を見てきましたが、これはリスト内の辞書のキーが同じ場合にのみ機能します。(データに対して itemgetter を使用すると、KeyError が返されます)
誰も私がこれを機能させる方法を知っていますか?
ありがとう!
Python で次の変数から ['a','b'] を取得しようとしています。
mylist = [{'A': ['a','b']}, {'B': ['c','d']}]
と
keys = ['A']
itemgetter を使用して回答のあるさまざまな質問を見てきましたが、これはリスト内の辞書のキーが同じ場合にのみ機能します。(データに対して itemgetter を使用すると、KeyError が返されます)
誰も私がこれを機能させる方法を知っていますか?
ありがとう!
私はmylist単一の辞書に変わります:
In [27]: d = dict(reduce(operator.add, (x.items() for x in mylist)))
次に、次のようにクエリします。
In [28]: [d[k] for k in keys]
Out[28]: [['a', 'b']]
私が正しく理解していれば、あなたはこれを望んでいます:
mylist[0][keys[0]]
これは、辞書がリストに配置されているためです。最初に so: のように取得する必要がありますmylist[0]。'A'次に、リストの最初の要素でもある文字列で辞書にインデックスを付けることができますkeys[0]。この 2 つをまとめると、上記の強調表示されたステートメントに到達します。