我正在学习Python:Crash课程,遇到了一个我正在解决的问题,但可能有更好的方法。你知道吗
我正在尝试修改此列表:
magicians = ['Houdini', 'Copperfield', 'Blaine']
在列表中的每个项目前添加“The Great”可获得:
magicians = ['The Great Houdini','The Great Copperfield', 'The great Blaine']
书中说我应该使用for循环和函数来完成这个任务,并且应该直接修改列表。我找到了一个丑陋的解决办法,但我希望有更好的办法来解决它。这是我想到的。你知道吗
def make_great(magic):
""" add 'the great' to a list of magicians"""
new_magic= []
for names in magic:
names = 'the great ' + names
new_magic.append(names)
global magicians
magicians = new_magic
make_great(magicians)
print(magicians)
谢谢你的帮助!你知道吗
下面介绍如何使用函数和传统的
for
循环对原始列表进行修改。你知道吗要修改原始列表对象,我们可以使用片分配:
magic[:] = new_magic
。您不应该试图修改全局magicians
列表,您需要使用传递给make_great
函数的magic
列表对象。你知道吗输出
通过使用列表理解,我们可以使函数更加紧凑(并且效率略高)。你知道吗
这个怎么样?你知道吗
输出:
您有三个要求:1)直接修改原始列表,2)使用函数,3)使用
for
循环。这是一个技术性问题,但与前面的答案不同,下面的方法不会首先创建一个新的列表,而是选择更新原始列表中的每个项目本身。因此,以下是如何满足所有要求:相关问题 更多 >
编程相关推荐