Set.pop () не случайно?

ОтPython Docs, "set.pop () удалить и вернуть произвольный элемент из s ", При генерации случайных данных для тестирования программы я заметил странное поведение этой функции pop (). Вот мой код (python 2.7.3):

testCases = 10
numberRange = 500

poppedValues = []
greaterPercentages = []

for i in range (testCases):
    s = Set()

    """ inserting 100 random values in the set, in the range [0, numberRange) """
    for j in range (100):
        s.add(random.randrange(numberRange)) 

    poppedValue = s.pop()
    greaterCount = 0

    """ counting how many numbers in the set are smaller then the popped value """
    for number in s:
        if poppedValue > number:
            greaterCount += 1

    poppedValues.append(poppedValue)
    greaterPercentages.append(float(greaterCount) / len(s) * 100)

for poppedValue in poppedValues:
    print poppedValue, '\t',

print

for percentage in greaterPercentages:
    print "{:2.2f}".format(percentage), '\t',

Что я'Я делаю здесь,

Вставка некоторых случайных значений в наборs где каждый элемент находится в диапазоне [0,)numberRangeВытолкнуть элемент из набора (согласно документам, он должен быть случайным)Подсчет, сколько элементов в наборе меньше, чем попсовое значение

Я ожидал, что вытесненное значение должно быть случайным, и около 50% чисел в наборе будет больше, чем вытесненное значение. Но кажется чтоpop() почти всегда возвращает самое низкое число в наборе. Вот результат дляnumberRange = 500, Первая строка обозначает значения вытолкнутого элемента. Вторая строка - это процент элементов, которые меньше, чем вытолкнутое значение.

9   0   3   1   409     0   1   2   4   0   
0 % 0 % 0 % 0 % 87 %    0 % 0 % 0 % 0 % 0 %

мы провели этот тест с разными значениямиnumberRange, Кажется, что для более низких значений заданных элементов,pop() почти всегда возвращает самый низкий элемент. Но для более высоких значений он возвращает случайный элемент. ЗаnumberRange = 1000результат:

518     3586    3594    4103    2560    3087    4095    3079    3076    1622    
7 %     72 %    73 %    84 %    54 %    51 %    79 %    63 %    67 %    32 %

что я думаю довольно случайно. Почему это странное поведение? Я делаю что-то неправильно?

РЕДАКТИРОВАТЬСпасибо всемответ и комментарий, кажется, что "произвольно", это н'Я не гарантирую, что это будетслучайный».

Ответы на вопрос(2)

Ваш ответ на вопрос