【发布时间】:2017-03-23 23:37:57
【问题描述】:
我尝试使用带有 1 个预定函数和 1 个参数的 map 函数。一切正常,直到我在 map 函数上调用 list() 。最后它显示了
IndexError: 列表索引超出范围
但是当我简单地调用列表中的函数而不使用 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('Dr. Chistopher Brooks')与发送姓名列表非常不同。 -
您的函数似乎旨在直接获取名称的可迭代。如果您将
map转到people,它当然会抛出错误,因为当您迭代for i in person时,它会遍历单个名称 的各个字符。当i到达空间" "然后split返回并清空列表[]并索引到空列表将抛出IndexError
标签: python list dictionary indexing split