鱼C论坛

 找回密码
 立即注册
查看: 2568|回复: 5

请问为什么list2输出的值不是空列表[],而是输出None?

[复制链接]
发表于 2022-10-18 16:10:08 | 显示全部楼层 |阅读模式

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

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

x
为什么下面这个代码输出list2得到的结果不是[],list1清空以后不是空列表吗,赋值给list2以后为什不是输出空列表[]?


>>> list1 = [1,[1,2,[' 小甲鱼']],3,5,8,13,18]
>>> list2 = list1.clear()
>>> print(list2)
None
>>> list2

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-18 16:12:26 | 显示全部楼层
list1.clear() 是把 list1 里的数据清空,返回值是 None 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-18 16:17:16 From FishC Mobile | 显示全部楼层
list1.clear()是原地操作,不生成新的列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-18 16:28:38 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-18 19:42 编辑
  1. list1 = [1,[1,2,[' 小甲鱼']],3,5,8,13,18]
  2. list1 . clear()          # 无返回值
  3. list2 = list1 . clear()  # 其实就是 list2 = None
复制代码

        这样才会得到空列表
  1. list1 = [1,[1,2,[' 小甲鱼']],3,5,8,13,18]
  2. list2 = list1
  3. list1 . clear()
  4. print(list2)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-10-18 16:30:12 | 显示全部楼层
list2 = list1.clear()
这里后面list1.clear()只是执行清空list1的操作,没有返回值,所以,list2没有得到赋值,因此是None
跟list2 = print(1)一样,后面只是执行了打印1,没有返回值,list2没有得到赋值,因此是None
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-19 13:11:15 | 显示全部楼层
clear()的作用是清空列表不会返回值,例如a = print(1)  ,print()只做打印没有返回值,若用a = return  1,则有返回值

因此代码要把list2 = list1.clear()拆开写成

list2 = list1
list1.clear()

这里是清除列表1,list1 = [] , list2 = list1 ,list2 = []
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 14:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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