我试着把一个句子放在列表中,然后根据单词在列表中的出现情况对列表进行排序,如果有必要,当两个单词出现相同的次数时,按字母顺序排序。我写了这段代码:
def frequencia(texto):
pals = texto.split()
m = sorted(pals,key=pals.count,reverse=True)
return m
问题是它重复了单词,并且没有按字母顺序排列。在“我是一个家伙,我很饿”这句话中,输出应该是' am ','I','a',' guy ','hungry‘。
发布于 2021-02-22 04:03:59
尝试以下操作:
sentence = 'I am a guy and I am hungry'
words = sentence.split(' ')
sortedwords = sorted(set(words), key=lambda x: (-words.count(x), x.lower()))
# ['am', 'I', 'a', 'and', 'guy', 'hungry']
使用set
获取输入中的唯一单词。然后,使用优先于出现次数最高的tuple
对它们进行排序(对于负计数,最频繁的出现次数具有最大的负值,并首先排序),然后按字母顺序排序(使用lower()
使大写和小写等效)。
https://stackoverflow.com/questions/66306443
复制相似问题