Renaissance_1221 2023-07-07 18:47 采纳率: 92.9%
浏览 18
已结题

python里关于集合的一个问题

为什么用b=a.add(1)输出后b的结果是none呢

img

换成了列表也是这样的

img

  • 写回答

3条回答 默认 最新

  • 会飞的石头。 2023-07-07 19:04
    关注

    在Python中,集合的add()方法和列表的append()方法都是就地修改原始对象,并没有返回任何值。所以,当你用 b=a.add(1) 给b赋值时,add()方法会将1添加到集合a中,但是add()方法返回的值是None,所以b的值也是None。

    同样的道理,当你用 b=a.append(4) 给b赋值时,append()方法将4添加到列表a中,但是append()方法同样没有返回任何值,所以b的值也是None。同时,a列表会被修改并添加一个额外的4。

    如果你想要得到添加元素后的集合或列表,你可以先执行add()方法或append()方法,然后再对a和b进行赋值,而不需要将这两个步骤合并到一个语句中。

    以下是修改后的示例代码:

     
    a = set()
    a.add(1)
    b = a
    print(b) # 输出:{1}

    a = [1, 2, 3, 4]
    a.append(4)
    b = a
    print(a, b) # 输出:[1, 2, 3, 4, 4] [1, 2, 3, 4, 4]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 已采纳回答 7月8日
  • 创建了问题 7月7日

悬赏问题

  • ¥15 锌合金的耐温能到多少度。可以持续多长时间
  • ¥15 .net调用本地office组件出现问题
  • ¥15 docker镜像拉取失败请教教我
  • ¥15 https访问nginx上的http
  • ¥15 需要完整规则的五子棋博弈代码
  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零