Python3-将列表传递给函数

时间:2018-12-05 23:26:33

标签: python python-3.x

在Python 3中,我目前正在尝试使用函数来修改列表。 (顺便说一下,Python非常新:))

我将显示该问题的指导,以作为参考。

“编写一个名为make_great()的函数,该函数通过在每个魔术师的名字上添加短语“ The Great”来修改魔术师的列表。调用show_magicians()可以看到该列表实际上已被修改。”

magicians = ['larry', 'mo', 'curly', 'nate']

def printing_magicians(names):
    """Printing the magicians names"""
    for name in names:
        print(name.title())

printing_magicians(magicians)

def make_great(names):
    """Adding 'the Great' to each magician"""
    for name in names:
        print(names + " the Great")

我不确定从这里去哪里。我不知道要为make_great()函数调用什么参数,然后不了解如何应用show_magicians()函数来查看已修改的列表。任何帮助都是极好的!提前致谢。

5 个答案:

答案 0 :(得分:3)

要就地修改列表,您应该按列表的索引引用列表的每个项目:

def make_great(names):
    for i in range(len(names)):
        names[i] += " the Great"

答案 1 :(得分:1)

在Python中,当您需要索引时,可以使用enumerate()遍历列表。它将为您提供值和列表中的索引,因此您可以:

def make_great(names):
    for i, name in enumerate(names):
        names[i] = f'{name} the Great'

答案 2 :(得分:1)

这里是一行中的方法。基本思想是使用列表理解并通过切片[:]来修改列表的所有元素。

def make_great(names):
    """Adding 'the Great' to each magician"""
    names[:] = [name + ' the Great' for name in names]

show_magicians函数仅用于打印magicians,因为magicians变量位于全局范围内。

def show_magicians():
    print(magicians)

示例:

>>> make_great(magicians)
>>> show_magicians()
['larry the Great', 'mo the Great', 'curly the Great', 'nate the Great']

答案 3 :(得分:0)

您还可以使用全局定义的newNames做这样的事情:

newNames = []
def make_great(names):
    for name in names:
        name += " the Great"
        newNames.append(name)

然后,您可以继续使用newNames作为参数调用函数,以打印新列表。

答案 4 :(得分:-1)

如果您希望make_great函数返回想要的列表,则可以执行以下操作:

def make_great(names):
    return [name + " the Great" for name in names]