我创建了list_cv
,并想编写一个返回人物姓名的函数,因此,例如,如果我键入has_expereince_as(list_cv,'bi_analyst')
,则应返回值'Marry'和'James'。
但是,当我给“ bi分析师”时,我的函数仅返回一个值“ 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'
答案 0 :(得分:2)
此行必须在for循环的 之外。
return position
当前,您要在添加第一个位置后返回,但要等到所有位置都添加后再返回结果。
答案 1 :(得分:1)
我想你会在循环中得到回报。使用此代码,您应该会很好:
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')
答案 2 :(得分:0)
您是要在第一次通过时返回还是要在返回之前进行迭代?
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')