Steven D'Aprano <steve <at> pearwood.info> writes: > > If you can think of any other way to efficiently cycle over the elements > in a set, I'm all for it :) How about "for x in s"? Or if you want to cycle: >>> s = set('abc') >>> it = itertools.cycle(s) >>> next(it) 'a' >>> next(it) 'c' >>> next(it) 'b' >>> next(it) 'a' Or if you don't want the overhead of itertools.cycle() keeping a copy of the set's elements: >>> s = set('abc') >>> it = itertools.chain.from_iterable(itertools.cycle([s])) >>> next(it) 'a' >>> next(it) 'c' >>> next(it) 'b' >>> next(it) 'a' >>> next(it) 'c' >>> next(it) 'b' > I can't say I've seen one in any other languages, but Wikipedia > lists "pick" as a fundamental set operation: > > pick(S): returns an arbitrary element of S. Well, it's an arbitrary element. It isn't specified that it will try to return different results in a row to satisfy the developer's aesthetical preferences... > This page claims that Icon has an operator that returns a random element > of a set: > > ? set( [1, 2, 3, 4, 5] ) random != arbitrary != weak-guaranteedly distinct
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4