1. ホーム
  2. python

[解決済み] Python: リストからdictを取得する際に、dictの中の何かを基準にする

2023-07-25 01:51:16

質問

の中にある項目を検索できるようにしたいのですが。 list の中にある項目を見つけられるようにする必要があります (この場合、項目は dict のこと) の中のある値に基づいて dict . の構造は list 処理する必要があるのは、以下のような感じです。

[
    {
        'title': 'some value',
        'value': 123.4,
        'id': 'an id'
    },
    {
        'title': 'another title',
        'value': 567.8,
        'id': 'another id'
    },
    {
        'title': 'last title',
        'value': 901.2,
        'id': 'yet another id'
    }
]

注意事項 title そして value は任意の値(同じ)にすることができます。 id は一意である。

を取得できるようにする必要があります。 dict から、この list に基づいて、一意の id . 私はこれがループを使用することによって行うことができることを知っているが、これは面倒に思えるし、私はこれを行うための明白な方法があるような気がするが、私は脳が溶けているおかげで見ていない。

どのように解決するのか?

my_item = next((item for item in my_list if item['id'] == my_unique_id), None)

にマッチする最初の項目を見つけるまでリストを繰り返します。 my_unique_id にマッチする最初の項目が見つかるまでリストを繰り返し、 その後停止します。ジェネレータ式を使って)中間リストをメモリに保存したり、明示的なループを要求したりすることはありません。これは my_itemNone のように、オブジェクトが見つからなかった場合に表示されます。とほぼ同じです。

for item in my_list:
    if item['id'] == my_unique_id:
        my_item = item
        break
else:
    my_item = None

else の節は for ループは、ループが break