python列表修改元素_Python对列表中的元素进行批量修改

Python编程从入门到实战,编写一个名为make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the Great”。

开始使用for循环遍历列表元素,再把“the Great”+原始元素赋值给当前元素,无果。

原始代码:

def make_great(magicians):

for magician in magicians:

magician = "the Great " + magician

print(magician)

return(magician)

magicians=['dante','vergil','leo']

make_great(magicians)

print(magicians)

运行结果:

the Great dante

the Great vergil

the Great leo

['dante', 'vergil', 'leo']

[Finished in 0.0s]

19050913255839.png

发现magicians这个列表并没有被修改。

Why?

我修改了一下代码。

修改代码:

def make_great(magicians):

n=len(magicians)

for i in range(0,n):

magicians[i]="The Great "+magicians[i]

print(magicians[i])

return magicians

magicians=['dante','vergil','leo']

make_great(magicians)

print(magicians)

运行结果:

The Great dante

The Great vergil

The Great leo

['The Great dante', 'The Great vergil', 'The Great leo']

[Finished in 0.1s]

19050913319960.png

成功了。

WHY?

推测:在原始代码中的for循环里的magician,并不能反向索引列表。所以,执行原始代码块时,只是magician这个临时变量被赋值,列表本身并没有影响。而在修改代码中,代码magicians[i]已经很明确地索引了列表第i-1位置的元素,所以这个修改是直接对该元素生效的。

刚自学Python,谬误之处请指正。

logo.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值