coward0720 发表于 2024-12-7 23:16:41

编写一个函数,对列表的值进行修改,为什么结果中列表没有修改成功?

编写一个函数,对列表name的值进行修改,为什么结果中列表没有修改成功?
def make_great(name):
   for i in name:
      i = 'The Great ' + i

magicName = ['andy', 'bob', 'candy','david']
make_great(magicName)
print(magicName)

FishC 发表于 2024-12-7 23:27:31

出现这个问题是因为在函数 `make_great` 中,您只是修改了循环变量 `i` 的值,而没有直接修改列表中的元素。您需要通过索引访问列表元素并进行修改。以下是修正后的代码:

def make_great(name):
    for i in range(len(name)):
      name = 'The Great ' + name

magicName = ['Houdini', 'Copperfield', 'Blaine']
make_great(magicName)
print(magicName)

这样,`magicName` 列表中的每个元素都会被正确地修改为 `'The Great '` 加上原来的名字。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

学习的鱼 发表于 2024-12-7 23:39:33

你这只是对 i 进行了修改
print输出的是magicName

isdkz 发表于 2024-12-8 03:16:24

def make_great(name):
   for i, v in enumerate(name):
      name = 'The Great ' + v

magicName = ['andy', 'bob', 'candy','david']
make_great(magicName)
print(magicName)

zyx2012 发表于 2024-12-8 08:19:04

用append()或extend()

coward0720 发表于 2024-12-8 13:40:13

isdkz 发表于 2024-12-8 03:16


enumerate这个函数我都没怎么用过,惭愧~
页: [1]
查看完整版本: 编写一个函数,对列表的值进行修改,为什么结果中列表没有修改成功?