鱼C论坛

 找回密码
 立即注册
查看: 2172|回复: 4

[已解决]list()为啥不支持列表方法

[复制链接]
发表于 2020-11-16 16:19:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
str1 = 'abcd'

list1 = list(s)

list1.reverse() 操作是可以的

为什么list(s).reverse()不可以?
且 id(list1) 和 id(list(s))也不同,为什么呢
最佳答案
2020-11-16 16:35:11
list(s).reverse()是可以的,reverse()是对一个列表反置,但是这个列表并没有赋值给一个变量,也就是反置后无法读取,python会自动从内存删除。
看看这个就明白地址为什么不同了。
>>> s = 'abcd'
>>> list1 = list(s)
>>> list2 = list(s)
>>> id(list1)
46840064
>>> id(list2)
46840128
每次字符串转成列表都会在一个新的地址存放。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 16:30:32 | 显示全部楼层
可以啊

谁说不行的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-16 16:33:37 | 显示全部楼层
本帖最后由 昨非 于 2020-11-16 16:36 编辑
a ="abcd"
list(a).reverse()  #是可以这么调用的
只不过
reverse方法没有返回值,这会造成list(a).reverse()语句操作后的list(a)丢失,
也就是a没有被改变,下面再print(list(a)),得到的仍是原顺序而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-16 16:35:11 | 显示全部楼层    本楼为最佳答案   
list(s).reverse()是可以的,reverse()是对一个列表反置,但是这个列表并没有赋值给一个变量,也就是反置后无法读取,python会自动从内存删除。
看看这个就明白地址为什么不同了。
>>> s = 'abcd'
>>> list1 = list(s)
>>> list2 = list(s)
>>> id(list1)
46840064
>>> id(list2)
46840128
每次字符串转成列表都会在一个新的地址存放。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-16 16:39:38 From FishC Mobile | 显示全部楼层
你只要明白每list(s)一次就生成一个新列表就行了,其他问题就不难理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 18:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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