gpt4 book ai didi

python - 在 Python 中按每个键具有不同值的键过滤字典列表

转载 作者:太空宇宙 更新时间:2023-11-04 04:37:56 25 4
gpt4 key购买 nike

我想知道是否有一种更简单的方法可以通过 Python 中每个键具有不同值的键来过滤字典列表我使用键值列表和要搜索的键列表编写了这段代码。有用。

示例:

Name = "A", Email = ".com" , Phone Number = "+1 (514"

结果 =

{'Name': 'Agueda Pines', 'Email': 'apines@geekpack.com', 'Phone Number': '+1 (514)206-7191', '': ''}

代码:

lst_dicts = [
{'Name':'Agueda Pines','Email':'apines@geekpack.com','Phone Number':'+1 (514)206-7191'},
{'Name':'Angie Holt','Email':'aholt@geekpack.com','Phone Number':'+1 (506)310-8876'},
{'Name':'Arlette Thurgood','Email':'athurgood@gsupptech.com','Phone Number':'+1 (204)507-4424'},
{'Name':'Aurea Luedtke','Email':'aluedtke@gsupptech.com', 'Phone Number': '+1 (306)548-8163'},
{'Name':'Christene Bousquet','Email':'cbousquet@gsupptech.com','Phone Number':'+1 (514)491-3645'},
{'Name':'Dagny Beecher','Email':'dbeecher@gsupptech.com','Phone Number':'+1 (418)870-5530'},
{'Name':'Daniel Jameson','Email':'djameson@4ti.ca','Phone Number':'+1 (647) 953-5588 ext:2555'},
{'Name':'Dominique Pinkley','Email':'dpinkley@geekpack.com','Phone Number':'+1 (403)276-5180'},
{'Name':'Evita Brunk','Email':'ebrunk@geekpack.com','Phone Number':'+1 (604)226-4880'}

]

def get_count_list_dic(self, lst_dicts, srch_txt=[], srch_Keys=[]):
index = 0
tmp = lst_dicts
while index < len(srch_Keys):
[x.append(k) for k in tmp if srch_txt[index].lower() in k[srch_Keys[index]].lower()]
tmp = x[:]
x.clear()
index += 1
return len(tmp)

最佳答案

字典似乎是组织输入的好方法。此外,您可以将 sum 与利用 all 的生成器表达式一起使用:

def get_count_list_dic(lst_dicts, srch_dict):
return sum(all(v in item[k] for k, v in srch_dict.items()) for item in lst_dicts)

d = {'Name': 'A', 'Email': '.com', 'Phone Number': '+1 (514'}

res = get_count_list_dic(lst_dicts, srch_dict=d) # 1

这里的技巧是注意 boolint 的子类,因此您可以对 bool 序列求和来计算 True 的数量元素。

另一种同样有效的方法是将 zip 与键和值序列一起使用。我更喜欢 dict,因为根据您构建字典的方式,您可以隐式检查每个键是否都附加了一个值。

关于python - 在 Python 中按每个键具有不同值的键过滤字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51251574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com