1

以下のようなリストの辞書があります。

dict = {'key1':list1, 'key2':list2}

list1=['a', 'b', 'c']
list2=['d', 'e', 'f']

つまり、

dict = {'key1': ['a', 'b', 'c'], 'key2': ['d', 'e', 'f']}

明示的な for ループを使用するのではなく、map を使用して、「b」を含むリストのオブジェクト、つまり list1 を取得したいと考えています。私はたくさんグーグルで検索しましたが、関連する情報が見つかりません。どんな助けでも大歓迎です。

4

3 に答える 3

0

そのような値で物事を調べる必要がある場合は、間違ったデータ構造を使用しています。そのためには、値をそれに対応するキーにマップする逆インデックスを作成する必要があります。(辞書を作成するときに、この逆索引を作成できます。) そのキーを取得したら、元の辞書で含まれているリストを簡単に検索できます。なんらかの理由で、辞書を作成するときに転置インデックスを作成できない場合 (作成していないため、配布されただけである可能性があります)、次のように転置インデックスを作成できます。

inverted_index = {v : k for k, l in d.items() for v in l}

ここでは、決して隠してはならない組み込み型の名前であるためd、代わりに辞書の名前に使用しています。dictdict

于 2013-07-02T02:20:59.660 に答える