辞書

2017-12-14 1 views
-3

の2つのリストを比較私は辞書の二つのリストいます辞書

list_1 = [ 
      {'total': 18, 'lead_status': '2'}, 
      {'total': 18, 'lead_status': '9'}, 
      {'total': 18, 'lead_status': '8'}, 
      {'total': 16, 'lead_status': '15'}, 
      {'total': 17, 'lead_status': '14'} 
     ] 

list_2 = [ 
      {'total': 18, 'lead_status': '2'}, 
      {'total': 22, 'lead_status': '9'}, 
      {'total': 18, 'lead_status': '8'}, 
      {'total': 16, 'lead_status': '15'}, 
      {'total': 17, 'lead_status': '14'} 
     ] 

lead_statusは常に一意の値を持っており、リスト内の辞書の順序は、同じではないかもしれない可能性があります。

私は例各lead_statusためtotal値が両方のリストに

同じであるかないことを確認したい

lead_status : '2'リストがいずれも18であるtotal同じを持っているため、それはTrue

を返します。

lead_status : '9'については、両方のリストが異なるtotalであり、list_1では18であり、では22です。したがって、それはFalseを返します。

私は、このソリューションで答えを試してみました:Comparing 2 lists consisting of dictionaries with unique keys in python

この問題を解決するために助けてください。どんな助けもありがとうございます。私はあなたの質問から分かるものから、

+2

私は望みの出力になるか分かりませんが、楽しみはリストを返すでしょうか?総計:ブール値? –

+0

希望のo/pはブール値にすることができます。それぞれの '' 'lead_status''に対して' 'total''が両方のリストで同じかどうかをチェックしているので、 –

+0

' [list_1 [idx] ['total'] == list_2 [idx] ['total '] idx in range(len(list_1))] 'これはなぜ機能しませんか? –

答えて

1

、これは動作するはずです:

In [25]: dict_1 = {l['lead_status']:l['total'] for l in list_1} 

In [26]: dict_2 = {l['lead_status']:l['total'] for l in list_2} 

In [28]: {k: (dict_2[k] == v) for k, v in dict_1.items()} 
Out[28]: {'14': True, '15': True, '2': True, '8': True, '9': False} 

この最初の値lead_statusと合計の値に等しいキーの辞書を作成し、両方のリストから作成した辞書を比較。

あなたの 'lead_status'キーが上書きされる値と同じ値を持っている場合でも、

+0

これはまさに私がしたい..あなたは私のポイントを持っています...あなたはこの質問を編集する手助けできますか?だからもっと投票のチャンスが少なくなる –

+0

'' 'lead_status'''キーは私の場合には一意になります...ありがとう... :) –

+0

@ShubhamSrivastava喜んで、私はあなたの質問を編集しました[stackoverflowについての良い質問をどうやるか](https://stackoverflow.com/help/how-to-ask)の例を示してください。いつも、あなたが試したことを示してください。コードの必要最小限の部分だけをスタックトレースに貼り付けます。これはコミュニティが質問に答えるのに役立ちます。 –