python里关于集合的一个问题

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

img

换成了列表也是这样的

img

在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]

  集合的add()方法操作是和列表的append()方法一样,原址操作,没有返回值,如果您强行赋值,就是None。

img

切记:set.add()方法是原址操作集合,没有返回值,如果非要有,就是None。


  • 这篇博客: python蓝桥杯准备中的 A+B问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • a,b=map(int,input().split())
    print(a+b)