Как отсортировать вывод одной строки в порядке убывания ASCII через функцию? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть строка слов, и я пытаюсь сделать подсчет для каждого алфавита, чтобы получить индивидуальное количество букв.Тем не менее, я хотел бы заказать их в ASCII в порядке убывания.Это так или иначе, чтобы изменить мою функцию ниже так, чтобы я мог получить желаемый результат?Счетчик печати (word1) .sort () тоже не работает, так как сортировка не может быть выполнена за одну строку.

word1 = iLoveCats

def count(i):
word2 = Counter(i).most_common()
return " ".join("{}:{}".format(a, b) for a, b in word2)



print count(word1)

Токовый выход:

a:1 C:1 e:1 i:1 L:1 o:1 s:1 t:1 v:1

Желаемый вывод: счет вASCII по убыванию.

Ответы [ 4 ]

0 голосов
/ 26 сентября 2018

Вы пытались использовать sorted ($ your_list, reverse = True)?

Например:

>>> b
['aa', 'BB', 'bb', 'zz', 'CC']
>>> sorted(b,reverse=True)
['zz', 'bb', 'aa', 'CC', 'BB']
>>>

sorted(reverse=True) может выводить список b в порядке убывания ASCII.

0 голосов
/ 26 сентября 2018

Если вы хотите поместить ваше письмо в порядке убывания ASCII, вы можете использовать функции chr и sorted.

word_dict = {...} # your current set of counts

for letter in sorted(word_dict.keys(), key=chr):
    print("%s: %d" % (letter, word_dict[letter]))

Это должно работать для вашего варианта использования.

0 голосов
/ 26 сентября 2018

Сортировка и подсчет должны сделать трюк здесь

print(' '.join(sorted(['{}:{}'.format(i, w.count(i)) for i in w], reverse=True)))
v:1 t:1 s:1 o:1 i:1 e:1 a:1 L:1 C:1
0 голосов
/ 26 сентября 2018

map:

def count(i):
   word2 = map(lambda x: map(str,x),Counter(i).items())
   return " ".join(sorted(map(':'.join,word2),reverse=True))

Или понимания:

def count(i):
   word2 = Counter(i).items()
   return " ".join(sorted(['{0}:{1}'.format(*i) for i in word2],reverse=True))

Сейчас:

print count(word1)

Оба Воспроизвести:

v:1 t:1 s:1 o:1 i:1 e:1 a:1 L:1 C:1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...