2017-11-18 13 views
1

私は解決策を見ましたが、この場合は最初の結果の後に検索が停止します。どのように私は実装することができます検索は、検索された値でリスト内のすべての辞書を取得する?forループ内の値の後に辞書のリストを表示します

search_value = input() 
match = next((l for l in cleaned_list if l['Name'] == search_value), None) 
print(match) 

これは、次のアプローチで作業されていません。

search_value = input() 
match = next((l for l in cleaned_list if l['Schluesse'] == search_value), None) 
for match in cleaned_list: 
    print(match) 

cleaned_listのデータ:

{'Versuche - Anteil in %': '11.8', 'erfasste Faelle': '17', 'Nichtdeutsche Tatverdaechtige - Anzahl': '4', 'Tatverdaechtige insgesamt': '9', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '44.4', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '0', 'Gemeindeschluessel': '9277', 'Kreisart': 'LK', 'HZ nach Zensus': '14', 'Versuche - Anzahl': '2', 'Schluesse': '980100', 'Aufklaerungsquote': '52.9', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Rottal-Inn', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '9', 'Tatverdaechtige - maennlich': '9'} 
{'Versuche - Anteil in %': '22.2', 'erfasste Faelle': '9', 'Nichtdeutsche Tatverdaechtige - Anzahl': '2', 'Tatverdaechtige insgesamt': '4', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '50.0', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '1', 'Gemeindeschluessel': '9278', 'Kreisart': 'LK', 'HZ nach Zensus': '9', 'Versuche - Anzahl': '2', 'Schluesse': '980100', 'Aufklaerungsquote': '44.4', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Straubing-Bogen', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '4', 'Tatverdaechtige - maennlich': '3'} 
{'Versuche - Anteil in %': '17.6', 'erfasste Faelle': '17', 'Nichtdeutsche Tatverdaechtige - Anzahl': '6', 'Tatverdaechtige insgesamt': '14', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '42.9', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '1', 'Gemeindeschluessel': '9279', 'Kreisart': 'LK', 'HZ nach Zensus': '18', 'Versuche - Anzahl': '3', 'Schluesse': '980100', 'Aufklaerungsquote': '70.6', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Dingolfing-Landau', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '12', 'Tatverdaechtige - maennlich': '13'} 
{'Versuche - Anteil in %': '0.0', 'erfasste Faelle': '4', 'Nichtdeutsche Tatverdaechtige - Anzahl': '1', 'Tatverdaechtige insgesamt': '5', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '20.0', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '1', 'Gemeindeschluessel': '9361', 'Kreisart': 'KfS', 'HZ nach Zensus': '10', 'Versuche - Anzahl': '0', 'Schluesse': '980100', 'Aufklaerungsquote': '100.0', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Amberg', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '4', 'Tatverdaechtige - maennlich': '4'} 
{'Versuche - Anteil in %': '4.4', 'erfasste Faelle': '45', 'Nichtdeutsche Tatverdaechtige - Anzahl': '9', 'Tatverdaechtige insgesamt': '21', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '42.9', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '7', 'Gemeindeschluessel': '9362', 'Kreisart': 'KfS', 'HZ nach Zensus': '32', 'Versuche - Anzahl': '2', 'Schluesse': '980100', 'Aufklaerungsquote': '62.2', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Regensburg', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '28', 'Tatverdaechtige - maennlich': '14'} 
{'Versuche - Anteil in %': '0.0', 'erfasste Faelle': '8', 'Nichtdeutsche Tatverdaechtige - Anzahl': '0', 'Tatverdaechtige insgesamt': '4', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '0.0', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '1', 'Gemeindeschluessel': '9363', 'Kreisart': 'KfS', 'HZ nach Zensus': '19', 'Versuche - Anzahl': '0', 'Schluesse': '980100', 'Aufklaerungsquote': '50.0', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Weiden i.d.OPf.', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '4', 'Tatverdaechtige - maennlich': '3'} 
{'Versuche - Anteil in %': '4.5', 'erfasste Faelle': '44', 'Nichtdeutsche Tatverdaechtige - Anzahl': '5', 'Tatverdaechtige insgesamt': '37', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '13.5', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '4', 'Gemeindeschluessel': '9371', 'Kreisart': 'LK', 'HZ nach Zensus': '43', 'Versuche - Anzahl': '2', 'Schluesse': '980100', 'Aufklaerungsquote': '79.5', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Amberg-Sulzbach', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '35', 'Tatverdaechtige - maennlich': '33'} 
{'Versuche - Anteil in %': '0.0', 'erfasste Faelle': '48', 'Nichtdeutsche Tatverdaechtige - Anzahl': '33', 'Tatverdaechtige insgesamt': '45', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '73.3', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '3', 'Gemeindeschluessel': '9372', 'Kreisart': 'LK', 'HZ nach Zensus': '38', 'Versuche - Anzahl': '0', 'Schluesse': '980100', 'Aufklaerungsquote': '93.8', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Cham', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '45', 'Tatverdaechtige - maennlich': '42'} 
{'Versuche - Anteil in %': '1.6', 'erfasste Faelle': '64', 'Nichtdeutsche Tatverdaechtige - Anzahl': '31', 'Tatverdaechtige insgesamt': '36', 'Nichtdeutsche Tatverdaechtige - Anteil in %': '86.1', 'mit Schusswaffe gedroht': '0', 'Tatverdaechtige - weiblich': '1', 'Gemeindeschluessel': '9373', 'Kreisart': 'LK', 'HZ nach Zensus': '50', 'Versuche - Anzahl': '1', 'Schluesse': '980100', 'Aufklaerungsquote': '93.8', 'Straftat': 'IuK-Kriminalität im engeren Sinne (SZ: 517500, 517900, 543000, 674200, 678000)', 'Stadt-/Landkreis': 'Neumarkt i.d.OPf.', 'mit Schusswaffe geschossen': '0', 'aufgeklaerte Faelle': '60', 'Tatverdaechtige - maennlich': '35'} 

私は今Schluesse980100で行を見つけするにはどうすればよいが、(そのほか他の値を持つ行Schluesse

+2

あなたの入力と希望の出力を投稿してください。 – Ajax1234

+0

OPが編集されました。 –

答えて

2

(のみあなたの最初のマッチを取得します)の代わりにnextコールの理解を行います:

match = [l for l in cleaned_list if l['Schluesse'] == '980100'] 
for x in match: 
    print(x) 
+0

私は今一致して印刷する場合、最初の一致のみを再度取得しました.. –

+1

これは、一致が1つしかないことを示します。あなたの 'cleaned_list'の外観と' search_value'はどうですか? – schwobaseggl

+0

私はOPを編集しました。 –

0
filter(lambda d: d.get('Name') == search_value, cleaned_list) 

あなたはcleaned_listと同じ配列のタイプを生成するために役立つだけでなく、ない要素を無視しますNameがあります。

0

あなたはこれを試すことができます:あなたは、多くの場合、この操作が必要な場合は

final_data = [i for i in cleaned_list if i["Schluesse"] == '980100'] 
0

は、'Schluessel'で、それはすべてあなたの最初のリストやグループにそれらをスキャンする価値があるかもしれません:

by_schluessel = {} 
for l in cleaned_list: 
    by_schluessel.setdefault(l['Schluesse'], []).append(l) 

print(len(by_schluessel.get('980100', []))) 
# 9 
print(len(by_schluessel.get('980101', []))) 
# 0 

by_schluesselがありますdictSchluesseとし、元のdictsを値としてリストします。 このクエリは、グループ化が完了すると非常に高速になります。

ところで、データベースやパンダ​​は、この種の作業に適している可能性があります。

関連する問題