发布
社区首页 >问答首页 >按事件和字母顺序对列表进行排序

按事件和字母顺序对列表进行排序
EN

Stack Overflow用户
提问于 2021-02-22 03:50:32
回答 1查看 53关注 0票数 2

我试着把一个句子放在列表中,然后根据单词在列表中的出现情况对列表进行排序,如果有必要,当两个单词出现相同的次数时,按字母顺序排序。我写了这段代码:

代码语言:javascript
代码运行次数:0
复制
def frequencia(texto):
    pals = texto.split()
    m = sorted(pals,key=pals.count,reverse=True)
    return m

问题是它重复了单词,并且没有按字母顺序排列。在“我是一个家伙,我很饿”这句话中,输出应该是' am ','I','a',' guy ','hungry‘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 04:03:59

尝试以下操作:

代码语言:javascript
代码运行次数:0
复制
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()使大写和小写等效)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66306443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档