arrData= [
{"name":"小明","age":18},
{"name":"小张","age":10},
{"name":"小明","age":18},
]
查找,name为小明, age为18,有几个,也许会有多个条件,所以要用for
下面写法错误
def search_field(arr, **kwargs):#
def iterator_obj(obj):
result = False
for i in kwargs:
if obj[i] == kwargs[i]:
result = True
return result
return filter(iterator_obj, arr)
search_field(arrData, {'name':"小明",'age':18})
请教正确写法
关键字参数传错了,应该下面这样传。同时过滤函数默认result =True,不相等直接 return False就行
arrData= [
{"name":"小明","age":18},
{"name":"小张","age":10},
{"name":"小明","age":18},
{"name":"小明","age":16},
]
def search_field(arr, **kwargs):#
def iterator_obj(obj):
result = True
for i in kwargs:
if obj[i] != kwargs[i]:
return False
return result
return filter(iterator_obj, arr)
result=search_field(arrData, name="小明",age=18)
print(list(result))
arrData= [
{"name":"小明","age":18},
{"name":"小张","age":10},
{"name":"小明","age":18},
]
def filter_f(arr,dic):
count = 0
for i in range(0,len(arr)):
if arr[i]== dic:
count += 1
return count
def search_field(arr, *kwargs):#
for i in range(0,len(kwargs)):
count = filter_f(arr,kwargs[i])
print(kwargs[i],'出现了',str(count),'次')
search_field(arrData, {'name':"小明",'age':18}, {'name':"小张",'age':10})
我的更准确,请给采纳哦,
arrData= [
{"name":"小明","age":18},
{"name":"小张","age":10},
{"name":"小明","age":18},
]
def search_field(arr, *lst):
for d in lst:
if d in arr:
return 1
return 0
search_field(arrData, [{'name':"小明",'age':18}])
既然查询条件有多个,那你的查询条件肯定应该是个列表,而不是字典
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!