找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 银发的index

[求助] 这里函数为什么没有修改列表?

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-5-6 15:34:00 | 显示全部楼层
参数赋默认值,function应用不加参数就可以了,如果加了那就是实际参数。
回复 支持 反对

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2018-5-6 15:40:22 | 显示全部楼层
银发的index 发表于 2018-5-6 15:25
那要怎么写才能得到 修改为 带the great 的new_names 列表呢?

你的函数不是有返回值的嘛,返回值不就是你要的结果?把它赋值给new_names就行咯
new_names = make_great(magic_names,new_names)
回复 支持 反对

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2018-5-6 15:43:51 | 显示全部楼层
本帖最后由 uitb 于 2018-5-6 15:51 编辑
银发的index 发表于 2018-5-6 14:37
哇~感觉好厉害的样子~
那如果要达到我说的那种应该怎么写呢。
还有为什么用列表解析得出的结果和普通定义 ...

magic_names = ['li']
for i in range(len(magic_names)):
      magic_names【i】 += 'the great'#这要直接修改列表,而不是列表的元素,把中文的中括号改成英文的,不知道论坛啥毛病,我用英文它不显示
print(magic_names)

列表解析式的话,它实际上的效果应该是依次读取列表的元素,修改后赋值给了另外一个变量,写成一般的循环结构应该就是下面这种形式,只不过python用了一个语法糖包装简化了
magic_names = ['li']
magic_names_ = []
for magic_name in magic_names:
      magic_names_.append(magic_name + 'the great')
magic_names = magic_names_
回复 支持 反对

使用道具 举报

26

主题

84

帖子

84

积分

新手

积分
84
银发的index  楼主| 发表于 2018-5-6 16:06:10 | 显示全部楼层
uitb 发表于 2018-5-6 15:43
magic_names = ['li']
for i in range(len(magic_names)):
      magic_names【i】 += 'the great'#这要直 ...

哦哦,修改列表元素是等于把列表里的元素取出来修改然后赋值给一个新变量但是列表本身是没有变的吗~
谢谢~
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-5-6 17:47:49 | 显示全部楼层
本帖最后由 sheeboard 于 2018-5-6 17:55 编辑

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表