在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()函数来查看已修改的列表。任何帮助都是极好的!提前致谢。
答案 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]