python/dist/src/Lib random.py,1.51.8.1,1.51.8.2
Update of /cvsroot/python/python/dist/src/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv8317/Lib Modified Files: Tag: release23-maint random.py Log Message: SF bug #801342: Bug (documentation or real, your choice) in random.sample. random.sample() uses one of two algorithms depending on the ratio of the sample size to the population size. One of the algorithms accepted any iterable population argument so long as it defined __len__(). The other had a stronger requirement that the population argument be indexable. While it met the documentation specifications which insisted that the population argument be a sequence, it made random.sample() less usable with sets. So, the second algorithm was modified to coerce non-indexable iterables and dictionaries into a tuple before proceeding. Index: random.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/random.py,v retrieving revision 1.51.8.1 retrieving revision 1.51.8.2 diff -C2 -d -r1.51.8.1 -r1.51.8.2 *** random.py 9 Aug 2003 18:20:16 -0000 1.51.8.1 --- random.py 5 Sep 2003 21:40:30 -0000 1.51.8.2 *************** *** 259,262 **** --- 259,266 ---- pool[j] = pool[n-i-1] # move non-selected item into vacancy else: + try: + n > 0 and (population[0], population[n//2], population[n-1]) + except (TypeError, KeyError): # handle sets and dictionaries + population = tuple(population) selected = {} for i in xrange(k):
participants (1)
-
rhettingerīŧ users.sourceforge.net