Dictionary/For循环只返回一个值



我创建了list_cv,并希望编写一个返回人名的函数,因此,例如,如果我键入has_expereince_as(list_cv,'bi_analyst'),它应该返回值"Marry"one_answers"James"。然而,当我给出"双分析师"时,我的函数只返回一个值"Marry"。我找不到原因。

list_cv =[{'user': 'Marry','jobs': ['data analyst','bi analyst']},
{'user': 'John','jobs': ['data specialist', 'data engineer', 'financial analyst']},
{'user': 'James','jobs': ['bi analyst', 'cloud engineer', 'data analyst']}]
def has_experience_as(list_cv,job_title):
position=[]
for i in range(len(list_cv)):
if job_title in (list_cv[i]['jobs']):
position.append(list_cv[i]['user'])
return position
has_experience_as(list_cv,'data analyst')

它只返回"Marry">

此行必须在for循环的外部:

return position

目前,您在追加第一个位置后返回,您希望等到所有位置都追加后再返回结果。

我想您的返回已经在循环中了。使用这个代码,你应该很好:

list_cv =[{'user': 'Marry','jobs': ['data analyst','bi analyst']},
{'user': 'John','jobs': ['data specialist', 'data engineer', 'financial analyst']},
{'user': 'James','jobs': ['bi analyst', 'cloud engineer', 'data analyst']}]
def has_experience_as(list_cv,job_title):
position=[]
for i in range(len(list_cv)):
if job_title in (list_cv[i]['jobs']):
position.append(list_cv[i]['user'])
return position
has_experience_as(list_cv,'data analyst')

您是想在第一次通过时返回,还是想在返回前迭代?

list_cv =[{'user': 'Marry','jobs': ['data analyst','bi analyst']},
{'user': 'John','jobs': ['data specialist', 'data engineer', 'financial analyst']},
{'user': 'James','jobs': ['bi analyst', 'cloud engineer', 'data analyst']}]
def has_experience_as(list_cv,job_title):
position=[]
for i in range(len(list_cv)):
if job_title in (list_cv[i]['jobs']):
position.append(list_cv[i]['user'])
return position
has_experience_as(list_cv,'data analyst')