Hello Everyone.
I have a basic question.
Please help me with this dictionary.
Why does it come in random combinations? Why a letter “A” doesn’t correspond 101 ???
Dictionaries are unorder collections. There are reasons why the order of items appears seemingly random; there is actually a logical reason why. This video explains how python builds dictionaries and orders key value pairs; I suspect under the hood, Dynamo is doing the same:
But key A does contain 101, just not as the first value of the dictionary
Dynamo is written in C#. We can take a look what’s under the hood of Dictionary.ByKeysValues node here:
So this node returns ImmutableDictionary object.
From https://docs.microsoft.com/pl-pl/dotnet/api/system.collections.immutable.immutabledictionary-2?view=netcore-2.2 we can learn that ImmutableDictionary is an immutable, unordered collection of keys and values.
I know. I was referring to the mechanics of how dictionaries are allocated memory addresses (hashing) - which that python video explains really well - demonstrating why dictionary key value pairs are seemingly ‘unordered’ and providing an insight and answer the OP if i am not mistaken. All languages which support dictionaries do the same thing, so the specific language in use isn’t important.
I wanted to post a general reply. Still, the node could behave as @m.shcheblykin expected because both C# and IronPython have ordered dictionary classes and they were not used here.
Saves on memory and CPU - order doesn’t matter as values are called for by name.
Yes, my fault. Looks like I didn’t understand the main concept and purpose of these dictionaries
We’re all here to learn