1 python set member cardinality
给定s,下面哪个段看起来更好?
if len(s) == 1:
v = s.copy().pop()
# important stuff using variable v takes place here
Run Code Online (Sandbox Code Playgroud)
要么
if len(s) == 1:
v = s.pop()
s.add(v)
# important stuff using variable v takes place here
Run Code Online (Sandbox Code Playgroud)
要么
if len(s) == 1:
for v in s:
# important stuff using variable v takes place here
Run Code Online (Sandbox Code Playgroud)
我猜最后一段是最有效的,但是使用一个从未实际循环的循环并不愚蠢吗?
为什么python集没有替代方法来弹出不删除项目?
这看起来似乎是一个微不足道的问题,但是当我多次遇到这种情况时,它已成为需要抓挠的痒!
为什么python集没有替代方法来弹出不删除项目?
如果要在不更改集结构的情况下访问第一个(也是唯一的)项,请使用迭代器:
v = iter(s).next()
Run Code Online (Sandbox Code Playgroud)
这在Python 3之前有效.在Python 3中,您需要使用内置next函数:
v = next(iter(s))
Run Code Online (Sandbox Code Playgroud)