在python
中,add
用于将项目添加到set
对象:
set_object = {'apple', 'orange'}
set_object.add('pear')
但是,new_object = set_object.add('pear')
并不等同于set_object.add('pear')
。
那么为什么会这样,是否有一种等效的方法将new_object
分配给变量?如果我不想修改原始set_object
,我该怎么办?
这也行不通
new_object = set_object + {'pear'}
目前,我似乎必须做:
set_object = {'apple', 'orange'}
set_object.add('pear')
new_object = set_object
set_object = {'apple', 'orange'}
有没有更有效的方法?
您可以使用
union
函数或'|'
运算符将新set
附加到现有。
set_object = {'apple', 'orange'}
new_object = set_object | {'pear'}
或
set_object = {'apple', 'orange'}
new_object = set_object.union({'pear'})
这与
set
无关。如果您执行以下操作,您将再次获得None
值。
a = [1, 2]
b = a.append(3)
print(b)
# None
这就是为什么你会得到None
,当你喜欢:
new_object = set_object.add('pear')
print(new_object)
# None
你只是使用了错误的运算符。 +
不是为集合定义的; |
是。
new_object = set_object | {'pear'}