Добавить в корзинуПозвонить
Найти в Дзене

Словари-алгоритм сортировки и по значниям и по ключам,в лексикографическом порядке

На примере задачи, рассмотрим этот алгоритм: Даны строки со словами.Надо отсортировать слова по возрастанию по кол-ву раз , и потом ,в каждой группе,с одинаковым кол-вом, отсортировать слова в лексикографическом порядке(по алфавиту) В начале, создаем словарь -- слово,ключ, и значение его колво. По алгоритму,прописанному раньше, в теме словари. Потом , делаем новый словрь, перебирая старый, где уже ключом является кол-во, а значением- список из слов,с одинаковым кол-вом. Далее, перебирая словарь,сортируем по ключам, и добавляем сортировку по списку по данному ключу,с помощью SORT() Пример: строка s=' aa ss dd ff aa ss e t ww u bb' slov=dict() for i in s: if i not in slov: slov[i]=0 slov[i]+=1 slov2=dict() for i in sorted(slov): if slov[i] not in slov2: slov2[ slov[i]]=[] slov2[ slov[i]].append(i) for i in slov2: slov2[i].sort() print(slov2)

На примере задачи, рассмотрим этот алгоритм:

Даны строки со словами.Надо отсортировать слова по возрастанию по кол-ву раз , и потом ,в каждой группе,с одинаковым кол-вом, отсортировать слова в лексикографическом порядке(по алфавиту)

В начале, создаем словарь -- слово,ключ, и значение его колво. По алгоритму,прописанному раньше, в теме словари.

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

Далее, перебирая словарь,сортируем по ключам, и добавляем сортировку по списку по данному ключу,с помощью SORT()

Пример:

строка

s=' aa ss dd ff aa ss e t ww u bb'

slov=dict()

for i in s:

if i not in slov:

slov[i]=0

slov[i]+=1

slov2=dict()

for i in sorted(slov):

if slov[i] not in slov2:

slov2[ slov[i]]=[]

slov2[ slov[i]].append(i)

for i in slov2:

slov2[i].sort()

print(slov2)