获取长度(/基数)为1的集合项而不删除它的首选Python方法?
给定集合s,下面哪一段看起来更好获取长度(/基数)为1的集合项而不删除它的首选Python方法?,python,set,member,cardinality,Python,Set,Member,Cardinality,给定集合s,下面哪一段看起来更好 if len(s) == 1: v = s.copy().pop() # important stuff using variable v takes place here 或 或 我想最后一个部分是最有效的,但是使用一个从来没有真正循环过的循环不是很愚蠢吗 为什么python集合没有一个不删除该项的pop替代方法 这似乎是一个微不足道的问题,但由于我多次遇到这种情况,它已成为一个需要抓挠的痒 为什么python集合没有一个不删除该项的pop替
if len(s) == 1:
v = s.copy().pop()
# important stuff using variable v takes place here
或
或
我想最后一个部分是最有效的,但是使用一个从来没有真正循环过的循环不是很愚蠢吗
为什么python集合没有一个不删除该项的pop替代方法
这似乎是一个微不足道的问题,但由于我多次遇到这种情况,它已成为一个需要抓挠的痒
为什么python集合没有一个不删除该项的pop替代方法
如果要在不更改集合结构的情况下访问第一个(也是唯一一个)项,请使用迭代器:
v = iter(s).next()
这适用于Python 3之前的版本。在Python 3中,需要使用内置的next
函数:
v = next(iter(s))
为什么python集合没有一个不删除该项的pop替代方法
如果要在不更改集合结构的情况下访问第一个(也是唯一一个)项,请使用迭代器:
v = iter(s).next()
这适用于Python 3之前的版本。在Python 3中,需要使用内置的next
函数:
v = next(iter(s))
您可以将唯一的元素指定给
v
,如下所示:
(v,) = the_set
如果
集合
不包含一个项目,则会引发异常。您可以将唯一的元素指定给v
,如下所示:
(v,) = the_set
如果
集合
不包含一个项目,它会引发一个异常。你不能某些集合[0]
,因为集合没有顺序。你如何-1给出+1:)Arg的人,我完全错过了集合
与列表
的区别!现在变了@Will Buddha-在Python2.6中,iter(set([1])。next()
起作用。在Python2.7中,iter({1}).next()起作用。显然,您使用的是Python 3.0,我已经更新了我的答案。@detly:很明显,他使用的是Python 3.x;除了没有人使用Python3.0之外,没有人使用Python3.0你不能某些集合[0]
,因为集合没有顺序。你如何-1给出+1:)Arg的人,我完全错过了集合与列表的区别!现在变了@Will Buddha-在Python2.6中,iter(set([1])。next()
起作用。在Python2.7中,iter({1}).next()起作用。显然,您使用的是Python 3.0,我已经更新了我的答案。@detly:很明显,他使用的是Python 3.x;除了Python 3,没有人使用它。0@Will:它直接迭代右侧,与detly的v=next(iter(s))
相同。也可以不带括号:v,=the_set
@Will:它直接迭代右侧,与detly的v=next(iter(s))
相同。也可以不带括号:v,=集合
。