How do I get the contents of a set()
in list[]
form in Python?
I need to do this because I need to save the collection in Google App Engine and Entity property types can be lists, but not sets. I know I can just iterate over the whole thing, but it seems like there should be a short-cut, or "best practice" way to do this.
Typecasting to list can be done by simply using list(set_name) . Using sorted() function will convert the set into list in a defined order. The only drawback of this method is that the elements of the set need to be sortable.
You can use python set() function to convert list to set.It is simplest way to convert list to set. As Set does not allow duplicates, when you convert list to set, all duplicates will be removed in the set. Let's understand with the help of example.
You cannot access items in a set by referring to an index or a key. But you can loop through the set items using a for loop, or ask if a specified value is present in a set, by using the in keyword.
>>> s = set([1, 2, 3]) >>> list(s) [1, 2, 3]
Note that the list you get doesn't have a defined order.
See Sven's answer, but I would use the sorted()
function instead: that way you get the elements in a nice predictable order (so you can compare the lists afterwards, for example).
>>> s = set([1, 2, 3, 4, 5]) >>> sorted(s) [1, 2, 3, 4, 5]
Of course, the set elements have to be sortable for this to work. You can't sort complex numbers (see gnibbler's comment). In Python 3, you also can't sort any set with mixed data types, e.g. set([1, 2, 'string'])
.
You can use sorted(s, key=str)
, but it may not be worth the trouble in these cases.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With