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,6} instead of {2,4,6,8}?
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 import OrderedDict
ordered_unique_values = list(OrderedDict.fromkeys(2*x for x in (1,2,3,4)))