首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找最不受欢迎的爱好

找最不受欢迎的爱好
EN

Stack Overflow用户
提问于 2022-10-13 20:13:23
回答 1查看 48关注 0票数 0

这项任务要求我编写一个函数,以列表的形式返回最不受欢迎的业余爱好。

代码语言:javascript
复制
def find_least_popular_hobbies(data: str) -> list:
    new_dict = create_dictionary(data) # creates a dictionary where the key is the name and the value is the hobby
    sorted_dict = sort_dictionary(new_dict) # sorts the dictionary values alphabetically
    new_list = []
    for value in sorted_dict.items():
        for ele in value[1]:
            new_list.append(ele)
    count = [(x, new_list.count(x)) for x in new_list]
    return count

例如,

代码语言:javascript
复制
print("Jack:crafting\nPeter:hiking\nWendy:gaming\nMonica:tennis\nChris:origami\nSophie:sport\nMonica:design\nCarmen:sport\nChris:sport\nMonica:skateboarding\nCarmen:cooking\nWendy:photography\nMonica:tennis\nCooper:yoga\nWendy:sport\nCooper:movies\nMonica:theatre\nCooper:yoga\nChris:gaming\nMolly:fishing\nJack:skateboarding\nWendy:fishing\nJack:drawing\nMonica:baking\nSophie:baking\nAlfred:driving\nAlfred:shopping\nAlfred:crafting\nJack:drawing\nCarmen:shopping\nCarmen:driving\nPeter:drawing\nCarmen:shopping\nWendy:fitness\nAlfred:travel\nJack:origami\nSophie:design\nJack:pets\nCarmen:dance\nAlfred:baking\nSophie:sport\nPeter:gaming\nJack:skateboarding\nCooper:football\nAlfred:sport\nCooper:fitness\nChris:yoga\nWendy:football\nMolly:design\nJack:hiking\nMonica:pets\nCarmen:photography\nJack:baking\nPeter:driving\nChris:driving\nCarmen:driving\nPeter:theatre\nMolly:hiking\nWendy:puzzles\nJack:crafting\nPeter:photography\nCarmen:theatre\nSophie:crafting\nCarmen:cooking\nAlfred:gaming\nPeter:theatre\nCooper:hiking\nChris:football\nChris:pets\nJack:football\nMonica:skateboarding\nChris:driving\nCarmen:pets\nCooper:gaming\nChris:hiking\nJack:cooking\nPeter:fishing\nJack:gaming\nPeter:origami\nCarmen:movies\nSophie:driving\nJack:sport\nCarmen:theatre\nWendy:shopping\nCarmen:pets\nWendy:gaming\nSophie:football\nWendy:theatre\nCarmen:football\nMolly:theatre\nPeter:theatre\nMonica:flowers\nMolly:skateboarding\nPeter:driving\nSophie:travel\nMonica:photography\nCooper:cooking\nJack:fitness\nPeter:cooking\nChris:gaming")

应该只返回['dance', 'flowers', 'puzzles', 'tennis']。我设法做到了以下几点:

代码语言:javascript
复制
[('baking', 4), ('crafting', 3), ('driving', 5), ('gaming', 6), ('shopping', 3), ('sport', 6), ('travel', 2), ('cooking', 4), ('dance', 1), ('driving', 5), ('football', 6), ('movies', 2), ('pets', 4), ('photography', 4), ('shopping', 3), ('sport', 6), ('theatre', 5), ('driving', 5), ('football', 6), ('gaming', 6), ('hiking', 5), ('origami', 3), ('pets', 4), ('sport', 6), ('yoga', 2), ('cooking', 4), ('fitness', 3), ('football', 6), ('gaming', 6), ('hiking', 5), ('movies', 2), ('yoga', 2), ('baking', 4), ('cooking', 4), ('crafting', 3), ('drawing', 2), ('fitness', 3), ('football', 6), ('gaming', 6), ('hiking', 5), ('origami', 3), ('pets', 4), ('skateboarding', 3), ('sport', 6), ('design', 3), ('fishing', 3), ('hiking', 5), ('skateboarding', 3), ('theatre', 5), ('baking', 4), ('design', 3), ('flowers', 1), ('pets', 4), ('photography', 4), ('skateboarding', 3), ('tennis', 1), ('theatre', 5), ('cooking', 4), ('drawing', 2), ('driving', 5), ('fishing', 3), ('gaming', 6), ('hiking', 5), ('origami', 3), ('photography', 4), ('theatre', 5), ('baking', 4), ('crafting', 3), ('design', 3), ('driving', 5), ('football', 6), ('sport', 6), ('travel', 2), ('fishing', 3), ('fitness', 3), ('football', 6), ('gaming', 6), ('photography', 4), ('puzzles', 1), ('shopping', 3), ('sport', 6), ('theatre', 5)]

如果可能的话,如何将其转换为['dance', 'flowers', 'puzzles', 'tennis']

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-13 20:24:32

您可以使用python的sort函数,并使用自定义键:

代码语言:javascript
复制
>>> l = [('baking', 4), ('crafting', 3), ('driving', 5)]
>>> l.sort(key=lambda x: x[1], reverse=True)
>>> l
[('driving', 5), ('baking', 4), ('crafting', 3)]

要从这个元组列表获得您感兴趣的字符串列表,可以使用zip(*l)

代码语言:javascript
复制
>>> a, b = zip(*l)
>>> list(a)
['driving', 'baking', 'crafting']

(b将包含相应爱好的有序频率)

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

https://stackoverflow.com/questions/74061311

复制
相关文章

相似问题

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