With this code:
print set(a**b for a in range(2, 5) for b in range(2, 5))
I get this answer:
set([64, 256, 4, 8, 9, 16, 81, 27])
Why it isn’t sorted?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Sets are not ordered collections in python or any other language for that matter.
Sets are usually implemented using hash keys (hash codes). So order is probably related to how hash functions are used instead of natural order of its elements.
If you need order, please do consider using a list.