Settings

Theme

Why is Python's OrderedDict ordered?

piglei.com

13 points by misonic · 17 comments

Reader

2 threads
addaon

Title of the article is "How…", not "Why…", and "why" is not discussed. (My understanding is that the "why" is "because the implementation acted that way without an official guarantee, and folks depended on the implementation detail, so it became guaranteed.)

  • recursivecaveat

    I was under that impression as well, but it was added as an implementation in 3.6 (https://bugs.python.org/issue27350), so I don't know that too many people would have become dependent on it before it was official in 3.7: https://docs.python.org/3/whatsnew/3.7.html

    I think the "how/why" thing is just the automatic title de-clickbait-ifer going a little haywire?

  • DemocracyFTW2

    I don't think this is the "why". What you're depicting is what happened in JavaScript. Dictionary keys in Python always had that (to me) annoying property that they preserved insertion order until they don't. I'd frankly much prefer if they'd always be iterated in random order each time they're traversed.

    • not_kurt_godel

      I'd love to see the results of mandating a random order dict impl at an actual company/org (but hate to be forced to participate). Hopefully you hired developers who really like to write sorting algos.

  • snthpy

    Thanks, How makes much more sense. The post title is dumb.

    Why is Hackernews news for hackers?

    • bradchoate

      The URL for the post includes "why" (en-why-is-python-ordereddict-ordered), so I suppose the title of the article was updated after the HN post was created. The site's native language is Chinese and I'm guessing the post was translated via automation. In fact, if you run the article through an automated translation service (Google Translate), it reproduces the "Why" title.

  • more_corn

    ^ came here to say exactly this

DemocracyFTW2

Wrong title, article has "How Does Python’s OrderedDict Maintain Order?"

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection