【发布时间】:2013-07-23 04:47:45
【问题描述】:
我想从frozenset 中获取一个元素(当然,不要修改它,因为frozensets 是不可变的)。到目前为止我发现的最佳解决方案是:
s = frozenset(['a'])
iter(s).next()
按预期返回:
'a'
换句话说,有没有办法从frozenset 中“弹出”一个元素而不实际弹出它?
【问题讨论】:
-
我认为你的方法和其他方法一样好。如果你想要一个随机元素,你可以查看
random.sample(fset, 1)。 -
为什么要弹出元素,因为它是任意的?
-
我只想从 freezeset 中获取一些任意元素。我不应该使用 pop 这个词,因为集合保持不变。这类似于偷看堆栈的第一个元素而不弹出它。
-
这就是我使用的(但使用
next内置而不是方法)。 -
不要使用
.next()的方法。至少从 python2.6 开始就有一个next()内置函数,使用它意味着您的代码也可以在next方法重命名为__next__的 python3 中工作。
标签: python iterator set immutability