Получить список из набора в python

Хо, я получаю содержимое формы set() в list[] в Python?

Мне нужно сделать это, потому что мне нужно сохранить коллекцию в свойствах Google App Engine и Entity, которые могут быть списками, но не установлены. Я знаю, что могу просто перебирать все это, но похоже, что это должно быть короткое или "лучшее" способ сделать это.

Ответ 1

>>> s = set([1, 2, 3])
>>> list(s)
[1, 2, 3]

Обратите внимание, что список, который вы получаете, не имеет определенного порядка.

Ответ 2

См. ответ 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), но в этих случаях это может не стоить.

Ответ 3

>>> a = [1, 2, 3, 4, 2, 3]
>>> b = set(a)
>>> b
set([1, 2, 3, 4])
>>> c = list(b)
>>> c
[1, 2, 3, 4]
>>>