Skip to content Skip to sidebar Skip to footer

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"