TIL Python switched to ordered dictionaries in 3.7 (actually 3.6 but they recognized it in 3.7). PHP has been doing it for decades, but who listens to those yokels anyway? It took almost three decades of proud "our dictionaries do not have order" proclamations to arrive to the idea that maybe they should. Well, better late than never.
Tags:
no subject
no subject
no subject
no subject
no subject
C# периодически вызывает у меня ощущение, похожее на ощущение от украинского языка: лексика отличается настолько сильнее грамматики, что кажется, что отличается только она.
Так вот, все, что в Java называется Sorted, в C# называется Ordered.
Есть ли в C# Ordered в смысле истории (вставки или чтения; в яве можно и так, и так), не проверял, а лезть лень.
под трамваем не былапитона не ел.no subject
no subject
no subject
это очень распространённый кейс и типовое решение общеизвестно, передать настройку парсера перед чтением
> в котором он в тексте. Сортировать опять же проще
хэшмапы не для этого вообще-то
если надо, то for x in sorted(x.keys()):
а вот для сохранения порядка надо доп.память и телодвижения
вместо 1 указателя надо 3 раза в память писать
no subject
no subject
no subject
Думать надо всегда.
Неупорядоченное и упорядоченное множества это принципиально разные структуры данных требующие разной имплементации и архитектуры обработки.
Потом - понятие «порядок» заключает в себе функциональное определение которое жестко зависит от структуры объектов в множестве.
Ну и главное - на поддержание упорядоченного множества уходит гораздо больше ресурсов оперативной памяти чем на неупорядоченное и в случаях когда перформанс очень важна то лучше работать с неупорядоченными множествами и упорядочивать данные только в случае необходимости.
Ну а то что вы описали как «что положил то и вынул» в теории структур данных называется стэк (stack).
no subject
Это не так. В случае Hashmap - два указателя и всё. Т.е. если хэш очень очень специальный, то пара указателей может тоже быть важна, но в общем случае это далеко не "гораздо".
в случаях когда перформанс очень важна
Случаев, когда перформанс реально зависит от пары записей в память размером с указатель на практике бывает крайне мало. Когда это так, то в этом случае, конечно, надо использовать специально оптимизированные структуры, однако в случае, когда используется Питон - это всё равно, что требовать сухую салфетку, находясь на дне океана. Там до случая, когда это важно для производительности, как до Луны пешком.
а то что вы описали как «что положил то и вынул» в теории структур данных называется стэк
Я кагбэ в курсе, что такое стек :) Но то, что я описывал, так не называется. Стек не имеет произвольного доступа.
no subject
Ну hash на это и заточена для быстрого доступа к элементам множества при помощи так называемых ключей которые всегда уникальны. То есть это множество двумерных объектов - (уникальный ключ, значение). Что никак не является упорядоченностью, то есть сортировкой.
Про питон разговор отдельный потому что этого зверька нельзя называть полноценным языком. Никогда не использовала его в своей практике, но «грамматических ошибок» в писанине других писателей исправляла много.
no subject
Разумеется, определение map (hashmap это частный случай имплементации) в общем случае не включает порядка между элементами. Но с порядком часто удобнее. Сортировка и упорядоченность, как я уже упоминал, разные вещи.
этого зверька нельзя называть полноценным языком
Из религиозных войн на подобную тему я ушёл лет 20 назад, и возвращаться не тянет. К этому могу только добавить, что плох тот мастер, что винит инструменты, и плох тот водитель, который может водить только автомобиль определённой модели.
no subject
У питона есть некоторая ниша где есть смысл его применять. Иначе бы он не появился и не выжил. Для меня это никогда не было войной - просто здравый смысл приводящий к успеху.
no subject
Вообще надо различать set и list; но населению думать-то некогда.
no subject
От имплементации, конечно, зависит.
no subject
Правильная имплементация таких объектов должна бы учитывать что set это более общее понятие чем list.
no subject
Но могут быть и другие взгляды на это все. Через типы, через категории.
no subject
no subject
no subject