list()为啥不支持列表方法
str1 = 'abcd'list1 = list(s)
list1.reverse() 操作是可以的
为什么list(s).reverse()不可以?
且 id(list1) 和 id(list(s))也不同,为什么呢 可以啊
谁说不行的? 本帖最后由 昨非 于 2020-11-16 16:36 编辑
a ="abcd"
list(a).reverse()#是可以这么调用的
只不过:
reverse方法没有返回值,这会造成list(a).reverse()语句操作后的list(a)丢失,
也就是a没有被改变,下面再print(list(a)),得到的仍是原顺序而已 list(s).reverse()是可以的,reverse()是对一个列表反置,但是这个列表并没有赋值给一个变量,也就是反置后无法读取,python会自动从内存删除。
看看这个就明白地址为什么不同了。
>>> s = 'abcd'
>>> list1 = list(s)
>>> list2 = list(s)
>>> id(list1)
46840064
>>> id(list2)
46840128
每次字符串转成列表都会在一个新的地址存放。 你只要明白每list(s)一次就生成一个新列表就行了,其他问题就不难理解
页:
[1]