Set Comprehension In Python
In Python3 I wrote a simple one line code as follows : { 2*x for x in {1,2,3,4} } but I m getting answer like this (order changed). {8, 2, 4, 6} Why I am getting answer {8,2,4,
Solution 1:
That's because sets don't have any order. They're unordered collection.
help on set
:
Build an unordered collection of unique elements.
If you want the order to be preserved then you can use list
, tuple
or collections.OrderedDict
here.
Solution 2:
Because a set has no fixed order. Quoting the set documentation:
A set object is an unordered collection of distinct hashable objects.
Use a list or tuple if you require ordering, or use an OrderedDict()
object to create unique keys that preserve ordering:
from collections importOrderedDictordered_unique_values= list(OrderedDict.fromkeys(2*x for x in(1,2,3,4)))
Post a Comment for "Set Comprehension In Python"