Найти в Дзене

Python и C#. А словари такие разные. Часть 2

В первой части я рассмотрел, что произойдет при инициализации словаря, содержащего дубликат ключа, в Python и C#. Как оказалось не совсем уж и разные словари. Но что произойдет при добавлении в словарь элемента с ключом, имеющимся уже в словаре. Отвечаем и читаем дальше. Ctrl+C, Ctrl+V в помощь. И так В Python нет метода осуществляющего явное добавление элемента в словарь. Конструкция dictionary['Yandex'] = 3 либо изменяет значение элемента с указанным ключом, либо если элемента с таким ключом не окажется в словаре, добавляет его в словарь. А вот как себя поведет C#. Отвечаем и читаем дальше. Ctrl+C, Ctrl+V в помощь. Не особо и странно В C# ситуация аналогичная. Конструкция dictionary["Yandex"] = 3 так же, как и в Python, либо изменяет значение элемента с указанным ключом, либо если элемента с таким ключом не окажется в словаре, добавляет его в словарь. Но в C# есть метод Add класса Dictionary для добавления элемента в словарь. Как он себя поведет при добавлении дубликата. Отвечаем

В первой части я рассмотрел, что произойдет при инициализации словаря, содержащего дубликат ключа, в Python и C#. Как оказалось не совсем уж и разные словари. Но что произойдет при добавлении в словарь элемента с ключом, имеющимся уже в словаре.

Отвечаем и читаем дальше.

Python 3.10.0; Добавления элемента в словарь.
Python 3.10.0; Добавления элемента в словарь.

Ctrl+C, Ctrl+V в помощь.

И так

В Python нет метода осуществляющего явное добавление элемента в словарь. Конструкция

dictionary['Yandex'] = 3

либо изменяет значение элемента с указанным ключом, либо если элемента с таким ключом не окажется в словаре, добавляет его в словарь.

А вот как себя поведет C#.

Отвечаем и читаем дальше.

С# 5.0; Добавления элемента в словарь.
С# 5.0; Добавления элемента в словарь.

Ctrl+C, Ctrl+V в помощь.

Не особо и странно

В C# ситуация аналогичная. Конструкция

dictionary["Yandex"] = 3

так же, как и в Python, либо изменяет значение элемента с указанным ключом, либо если элемента с таким ключом не окажется в словаре, добавляет его в словарь.

Но в C# есть метод Add класса Dictionary для добавления элемента в словарь. Как он себя поведет при добавлении дубликата.

Отвечаем и читаем дальше.

С# 5.0; Добавления элемента в словарь. Метод Add.
С# 5.0; Добавления элемента в словарь. Метод Add.

Ctrl+C, Ctrl+V в помощь.

Что мы имеем

А имеем мы ошибку, программа сыпется. Метод Add не изменяет существующий элемент, а создает исключение - ArgumentException, если элемент с таким ключом уже существует в словаре.

С# 5.0 и Python 3.10.0; Добавления элемента в словарь.
С# 5.0 и Python 3.10.0; Добавления элемента в словарь.

Вывод

Разглагольствовать дальше не буду, думаю, все, кто дочитал до конца, сделали для себя определенные выводы. А мне захотелось посмотреть на исходники этих коллекций. Но всему свое время.

Спасибо за потраченное время на прочтение.

Строго не судите.

За уместные комментарии буду признателен.