我看过解决方案,但在这种情况下,在第一个结果之后搜索停止了。我如何实现,搜索获取列表中包含搜索值的所有词典?
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'}
我现在如何在980100
中找到Schluesse
的行(他们的其他行包含Schluesse
中的其他值
答案 0 :(得分:2)
理解而不是db.data.aggregate(
{$unwind: '$tags_data'},
{$group: {_id: '$tags_data', sum: {$sum: +1}} },
{$sort: {sum: -1}}
);
调用(只能让你获得第一场比赛)将会:
next
答案 1 :(得分:0)
filter(lambda d: d.get('Name') == search_value, cleaned_list)
将帮助您生成与cleaned_list
相同的序列类型,并忽略不具有Name
的元素。
答案 2 :(得分:0)
你可以试试这个:
final_data = [i for i in cleaned_list if i["Schluesse"] == '980100']
答案 3 :(得分: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
是一个dict
,其中Schluesse
为关键字,原始字母列表为值。
分组完成后,此查询将非常快。
顺便说一句,数据库或大熊猫DataFrame可能更适合这类任务。