Ответ 1
>>> s = set([1, 2, 3])
>>> list(s)
[1, 2, 3]
Обратите внимание, что список, который вы получаете, не имеет определенного порядка.
Хо, я получаю содержимое формы set()
в list[]
в Python?
Мне нужно сделать это, потому что мне нужно сохранить коллекцию в свойствах Google App Engine и Entity, которые могут быть списками, но не установлены. Я знаю, что могу просто перебирать все это, но похоже, что это должно быть короткое или "лучшее" способ сделать это.
>>> s = set([1, 2, 3])
>>> list(s)
[1, 2, 3]
Обратите внимание, что список, который вы получаете, не имеет определенного порядка.
См. ответ Sven, но вместо этого я использовал бы функцию sorted()
: таким образом вы получите элементы в хорошем прогнозируемом порядке (например, вы можете сравнить списки позже).
>>> s = set([1, 2, 3, 4, 5])
>>> sorted(s)
[1, 2, 3, 4, 5]
Конечно, элементы набора должны быть сортируемыми, чтобы это работало. Вы не можете сортировать сложные числа (см. Комментарий gnibbler).
В Python 3 вы также не можете сортировать какой-либо набор со смешанными типами данных, например. set([1, 2, 'string'])
.
Вы можете использовать sorted(s, key=str)
, но в этих случаях это может не стоить.
>>> a = [1, 2, 3, 4, 2, 3]
>>> b = set(a)
>>> b
set([1, 2, 3, 4])
>>> c = list(b)
>>> c
[1, 2, 3, 4]
>>>