У меня есть два вопроса о наборах.Python 3.41 Набор
1. Так как я читал наборы неупорядочен, но когда я начал экспериментировать с ними, я узнал, что на самом деле есть какая-то вещь для заказа.
Как вы можете видеть, что нет ничего особенного в этом наборе:
>>> v_set ={88,11,1,33,21,3,7,55,37,8}
>>> v_set
{33, 1, 3, 37, 7, 8, 11, 21, 55, 88}
Но это одна другая:
>>> g_set={7,5,11,1,4,13,55,12,2,3,6,20,9,10}
>>> g_set
{1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 20, 55}
Я думаю, это потому, что на этот раз я записал более тесные номера , и стало иметь смысл установить эти числа по возрастающей последовательности ...?
2. И второй вопрос касается pop(). Я читал, что нет способа контролировать, какое значение будет удалено с помощью метода pop(), это совершенно произвольно. Ставка, когда я использую метод pop(), всегда (я никогда не видел иначе) берет первый элемент с левой стороны в наборах.
Как вы можете видеть:
>>> v_set
{33, 1, 3, 37, 7, 8, 11, 21, 55, 88}
>>> v_set.pop()
33
>>> v_set.pop()
1
>>> v_set.pop()
3
>>> v_set.pop()
37
>>> v_set.pop()
7
>>> v_set.pop()
8
>>> v_set.pop()
11
>>> v_set.pop()
21
>>> v_set.pop()
55
Так это на самом деле совершенно произвольно?
Пожалуйста, оставляйте свои сообщения только на один вопрос *; ваша первая проблема - дубликат [Почему порядок в словарях Python произволен?] (http://stackoverflow.com/q/15479928) (наборы - это просто словари с просто ключами и без значений). –
Порядок '.pop()' как «произвольный» как порядок итерации набора; для Python мало смысла «рандомизировать» это. –