为什么我的函数仅返回列表中的一项?

我正在学习python以提高自己的技能。我正在构建一个Web应用程序,以跟踪与我一起工作的自由职业者。我正在学习一个教程,但自己编写。


这是代码:


freelancers = ["juan", "andre"] #original list



def get_freelancer_titlecase(): # makes freelancers TitleCased

    freelancers_in_titlecase = []#empty dict

    for freelancer in freelancers:

        freelancers_in_titlecase = freelancer.title()

        return freelancers_in_titlecase


def print_freelancers_in_titlecase():#print freelancers in TitleCase

    print_freelancers_in_titlecase = get_freelancer_titlecase()

    print(print_freelancers_in_titlecase)


freelancer_list = get_freelancer_titlecase() # Place the function inside a variable

print(freelancer_list)# here is my problem, this returns only the first entry "Juan", in title case but stops there.


print(freelancers)# this is a check to see the items on the list and they are ["juan", "andre"]

为什么print(freelancer_list)只退货一件?我需要能够调用列表,并让所有自由职业者拥有大写字母。后来,它应该是一本字典,其中也要保留一个ID,当然还要包含每个自由职业者的输入。


这是我的第一个问题,所以先谢谢您。


隔江千里
浏览 198回答 3
3回答

ibeautiful

您get_freelancer_titlecase(在获得第一个元素后立即从)返回 。您需要使用进行存储以列出列表 freelancers_in_titlecase,append并在for循环外结束时返回。freelancers = ["juan", "andre"] #original listdef get_freelancer_titlecase(): # makes freelancers TitleCased    freelancers_in_titlecase = []    for freelancer in freelancers:        freelancers_in_titlecase.append(freelancer.title())    return freelancers_in_titlecasedef print_freelancers_in_titlecase():#print freelancers in TitleCase    print_freelancers_in_titlecase = get_freelancer_titlecase()    print(print_freelancers_in_titlecase)freelancer_list = get_freelancer_titlecase() # Place the function inside a variableprint(freelancer_list)  # ['Juan', 'Andre']print(freelancers)  # ['juan', 'andre'] print_freelancers_in_titlecase()  # This function prints titlecased list.

拉丁的传说

您将freelancers_in_titlecase在第一个循环之后返回,此外,您将覆盖该变量。因此,您应该将和变量带入return外部,for loop而append不是替换它们:def get_freelancer_titlecase(): # makes freelancers TitleCased    freelancers_in_titlecase = []#it is actually a list    for freelancer in freelancers:        freelancers_in_titlecase.append(freelancer.title())    return freelancers_in_titlecase您可以考虑使用List Comprehensions重写此函数:def get_freelancer_titlecase():    freelancers_in_titlecase = [freelancer.title() for freelancer in freelancers]    return freelancers_in_titlecase

白板的微信

问题出在您的get_freelancer_titlecase()职能上。def get_freelancer_titlecase(): # makes freelancers TitleCased    freelancers_in_titlecase = []#empty dict    for freelancer in freelancers:        freelancers_in_titlecase = freelancer.title()        return freelancers_in_titlecase此函数执行以下操作:创建一个名为的空列表(不是字典) freelancers_in_titlecase循环浏览freelancers列表中的项目。将空列表替换freelancers_in_titlecase为第一个自由职业者的职务。返回该值(循环完成之前)。试试这个吧。def get_freelancer_titlecase(): # makes freelancers TitleCased    freelancers_in_titlecase = [] #empty list    for freelancer in freelancers:        freelancers_in_titlecase.append(freelancer.title())    return freelancers_in_titlecase这会将每个自由职业者的标题大小写添加到列表中,并且仅在循环完成后才返回列表。如果您要更改它以返回一个dict以原始名称为键,标题大小写为值的方式,则可以这样操作:def get_freelancer_titlecase(): # makes freelancers TitleCased    freelancers_in_titlecase = {} # empty dict    for freelancer in freelancers:        freelancers_in_titlecase[freelancer] = freelancer.title()    return freelancers_in_titlecase
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python