我试图使用具有1个预定义函数和1个参数的map函数。一切工作正常,直到我调用地图函数的list()。最后它显示使用map时的列表索引超出范围()
IndexError: list index out of range
但是,当我只是在不使用map()的情况下调用列表上的函数时,它是可以的。任何人都可以尝试并帮助我识别错误吗?
people = ['Dr. Christopher Brooks', 'Dr. Kevyn Collins-Thompson', 'Dr. VG Vinod Vydiswaran', 'Dr. Daniel Romero']
def split_title_and_name(person):
name_list=[]
for i in person:
i = i.split()[0]+" "+i.split()[-1]
name_list.append(i)
return name_list
split_title_and_name(people)
list(map(split_title_and_name, people))
你可以修复你的缩进。 'map'接收每个人并应用函数'split_title_and_name()'。 'split_title_and_name('Chistopher Brooks博士')与发送名单清单非常不同。 – AChampion
你的功能似乎是专门为可直接使用名称*而设计的。当然,如果你把它映射到'people',那么它会抛出一个错误,因为当你为'我亲自迭代'时,它遍历*单个名字*的单个*字符*。当'i'到达空间时,'split'返回并且空列表'[]'并且索引到一个空列表将抛出'IndexError' –