Попытка выяснить «лучший» способ написать код для следующего сценария. Скажем, у меня есть следующий словарный объект < /p>
Dictionary myDict = new Dictionary()
< /code>
Я собираюсь пройти через слово и добавить входы букв в слово в словарь. Каждый раз, когда я сталкиваюсь с новой буквой (новым ключом), я хочу добавить ее со значением init 1, в противном случае, если буква уже является ключом в словаре, я хочу увеличить ее на 1. Я придумал несколько вариантов, но мне было интересно Если это «лучший» или «правильный» способ сделать это.
примеры будут использовать строку < /p>
string word = "aaabbc";
< /code>
опция 1 < /p>
foreach(char ltr in word){
if (myDict.ContainsKey(ltr) {
myDict[ltr] +=1;
} else {
myDict[ltr] = 1;
}
< /code>
опция 2 < /p>
foreach(char ltr in word){
try {
myDict.Add(ltr, 1);
} catch(Exception){
myDict[ltr] += 1;
}
}
< /code>
опция 3 < /p>
foreach(char ltr in word){
int dummy = myDict.ContainsKey(ltr) ? myDict[ltr] += 1 : myDict[ltr] = 1
}
< /code>
Вариант 1 кажется самым основным, просто проверьте, существует ли ключ, и сделайте то, что нужно сделать в зависимости от результата. Вариант 2 интересен, мне интересно, может ли он отличаться оптимальным образом, может быть, быстрее или медленнее. Вариант 3 кажется самым кратким, но мне не нравится, как ему нужна фиктивная int value, просто чтобы выполнить то, что я хочу сделать (возможно, я здесь не неправильно использую). < /P>
Итак, какой из этих 3 - «Лучший» или мне не хватает другого?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ready-exis
Лучший способ добавить новую пару значений ключей в словарь, если ее еще не существует, а значение увеличения, если оно ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как создать дочернюю пару ключей из главной пары ключей с помощью модуля Pycryptodome?
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-