flyshuishui 发表于 2020-6-23 18:38:06

列表,数组相关问题

list1 = ], 3, 5, 8, 13, 18]
   print(list1.copy())
    list1.clear()
    print(list1)
为什么可以直接打印list1.copy() ,但是直接打印list1.clear() 就不行
不仅仅这2个,其他也有,为啥有的可以可以直接打印,有的不可以

heidern0612 发表于 2020-6-23 18:40:26

本帖最后由 heidern0612 于 2020-6-23 18:42 编辑

list1.clear()是个方法,它没有返回值。

它不是操作完后返回实际的列表,而单纯的就是个方法,是个功能而已。

就像你说“我跑”,“我”可以实例出来一个人,“跑”的话你怎么实例出来?


一般情况下,方法和功能(动态)都没办法具现出来,而只有实施这个方法的物体(静态)可以出来。

这也是两者的区别,等你学到函数的时候自然就明白区别了。

Twilight6 发表于 2020-6-23 18:51:11

本帖最后由 Twilight6 于 2020-6-23 20:06 编辑



列表绝大多数的方法都是在列表本身上进行改变的,没有返回值,但是 Python 默认会让其返回 None

比如列表的remove() 、extend()、clear() 、append() 、reverse()、insert() 等,但是要注意 pop() 这个方法会有返回值哈

copy() 函数,它是浅拷贝的作用,在这里而言是拷贝原列表返回新的一个列表哈,

所以 copy() 对列表使用,这里会打印出列表,也就是说, copy() 函数是有返回值的。

而你 print(list1.clear()) 是在原本的列表上进行的 所以没有返回值 Python 默认返回一个 None 即是 空的意思

因为你上面对列表使用了 clear 方法,导致原列表被清空,所以最后你打印的列表是一个空列表。

flyshuishui 发表于 2020-6-24 08:40:54

heidern0612 发表于 2020-6-23 18:40
list1.clear()是个方法,它没有返回值。

它不是操作完后返回实际的列表,而单纯的就是个方法,是个功能 ...

谢谢,大约上明白了~{:5_109:}
页: [1]
查看完整版本: 列表,数组相关问题