siven-siven 发表于 2020-11-16 16:19:49

list()为啥不支持列表方法

str1 = 'abcd'

list1 = list(s)

list1.reverse() 操作是可以的

为什么list(s).reverse()不可以?
且 id(list1) 和 id(list(s))也不同,为什么呢

昨非 发表于 2020-11-16 16:30:32

可以啊

谁说不行的?

昨非 发表于 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)),得到的仍是原顺序而已

冬雪雪冬 发表于 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
每次字符串转成列表都会在一个新的地址存放。

hrp 发表于 2020-11-16 16:39:38

你只要明白每list(s)一次就生成一个新列表就行了,其他问题就不难理解
页: [1]
查看完整版本: list()为啥不支持列表方法