list(a)
дает список ключей словаря и sorted
сортирует его.Поскольку ваши ключи представляют собой сочетание прописных и строчных букв, вы не ожидаете, что они будут возвращаться требуемым образом, поскольку заглавные буквы сортируются перед строчными.
Один из способов справиться с этим - определить пользовательскую функцию, например:
a = {'pop': 1, 'Christmas': 1, 'R&B': 2}
def lower(x):
return x.lower()
print(sorted(list(a), key=lower))
# ['Christmas', 'pop', 'R&B']
Если вы пытаетесь отсортировать по длине слова, это будет выглядеть так:
a = {'pop': 1, 'Christmas': 1, 'R&B': 2}
print(sorted(list(a), key=len))
# ['pop', 'R&B', 'Christmas']