Писать код я умею, но теперь учусь писать грамотный и оптимизированный код.
Эта программа принимает любое слово и в словарь записывает сколько раз каждая буква слова повторялась, но возможно ли написать лучше (короче) используя например **kwargs?
word = input()
lib = {}
for letter in word:
lib[letter] = word.count(letter)
print(lib)
# hello
# {'h': 1, 'e': 1, 'l': 2, 'o': 1}
collections — встроенная библиотека, и её использование действительно не зазорно даже для такой простой задачи. К тому же, метод гораздо быстрее, если вы хотите писать грамотный и оптимизированный код. Приложил скриншот со сравнением времени выполнения метода для строки длиной 100 тысяч символов, вот, взгляните:
cherv11, справедливости ради, тут (как и в примере автора) нет смысла делать перебор по word, т.к. берется word.count, а не вручную считаются символы. Если сразу брать перебор по set(word), то и у простого метода скорость увеличится на порядки, хотя все равно уступает Counter.