我想知道是否有一种更简单的方法可以通过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)
只需编写一个函数来测试这些条件:
然后可以使用
filter
或列表理解来筛选列表:当键在键集中时,需要一个返回布尔值的函数来进行测试,然后可以使用
filter
:字典似乎是整理输入的好方法。此外,还可以使用
sum
与生成器表达式一起使用all
:这里的技巧是要注意
bool
是int
的一个子类,因此可以对布尔序列求和以计算True
元素的数量。你知道吗另一种同样有效的方法是对键和值序列使用
zip
。我更喜欢dict
,因为根据您构造字典的方式,您会隐式检查每个键是否附加了值。你知道吗相关问题 更多 >
编程相关推荐