为什么用b=a.add(1)输出后b的结果是none呢
换成了列表也是这样的
在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]