当前,因为返回值set.add始终是None.我必须做以下事情.
if 1 in s:
print 'already found'
return
s.add(1)
Run Code Online (Sandbox Code Playgroud)
如果可以的话会不会很好
if not s.add(1):
print 'already found'
return
Run Code Online (Sandbox Code Playgroud)
>>> None == False
False
>>> None == True
False
>>> None == None
True
>>> not None
True
Run Code Online (Sandbox Code Playgroud)
如果s.add始终返回None,那么您的条件将始终为True.但由于s是一个集合,只需将值添加到它.根据定义,您不能在集合中具有重复值:
>>> a = set()
>>> a.add(1)
>>> a
{1}
>>> a.add(1)
>>> a
{1}
Run Code Online (Sandbox Code Playgroud)
如果你只是想知道1是否在集合中,那么就做if 1 in s.
任何原因 set.add 没有返回值
是的。
原因是集合变元,如set.add()、list.append()等,永远不会返回值。
如果方法发生变化并成为对象,则它不会返回值。这就是规则。
有一些小的例外,例如pop。
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |