在
Java中,我喜欢使用“添加到集合”操作返回的布尔值来测试元素是否已经存在于集合中:
if (set.add("x")) { print "x was not yet in the set"; }
我的问题是,Python中有什么方便吗?我试过了
z = set() if (z.add(y)): print something
但它没有打印任何东西.我错过了什么吗?谢谢!
解决方法
在Python中,set.add()方法不返回任何内容.你必须使用not in运算符:
z = set() if y not in z: # If the object is not in the list yet... print something z.add(y)
如果在添加对象之前确实需要知道对象是否在集合中,只需存储布尔值:
z = set() was_here = y not in z z.add(y) if was_here: # If the object was not in the list yet... print something
但是,我认为你不太可能需要它.
这是一个Python约定:当方法更新某个对象时,它返回None.你可以忽略这个惯例;此外,有一些“野外”的方法违反了它.然而,这是一个普遍的,公认的惯例:我建议坚持下去,并牢记它.