首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单独的字典中按其各自的值对列表进行排序?

在单独的字典中按其各自的值对列表进行排序?
EN

Stack Overflow用户
提问于 2020-04-03 01:37:53
回答 3查看 32关注 0票数 0

假设我有一个字典,其中一些键是单独数组中的值,如何根据字典中各自键的值对数组中的值进行排序?

例如:

投入:

代码语言:javascript
复制
dict = {'a': 4, 'b': 7, 'c': 10, 'd': 1}
array = [a, b, d]

产出:

代码语言:javascript
复制
array = ['d', 'a', 'b']

输出数组中值的顺序首先是"d“,因为它在字典中的值是最低的(1)。其次是"a“(4)和"b”(7)。我故意在数组中不包括"c“。

,我不是要用算法来解决这个问题

我要问的是,是否有一种简单的内置方式来完成这一任务,例如使用sorted(array, key= )类型函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-03 01:41:05

我觉得你想要的是:

代码语言:javascript
复制
>>> d = {'a': 4, 'b': 7, 'c': 10, 'd': 1} 
>>> a = ['a', 'b', 'd']
>>> sorted(a, key=d.get)
['d', 'a', 'b']
票数 2
EN

Stack Overflow用户

发布于 2020-04-03 01:46:38

是的,您可以使用lambda函数来返回字典中相应元素的值。

顺便说一句,我认为对变量名使用'dict‘这个词并不是一个好的做法,因为它是python中内置的单词。

代码语言:javascript
复制
print(sorted(array, key=lambda x: a_dict[x]))
票数 0
EN

Stack Overflow用户

发布于 2020-04-03 02:08:07

您可以尝试如下: dict = {'a':4,'b':7,'c':10,'d':1} array = "a","b","d“

代码语言:javascript
复制
new_dict = sorted(dict.items(), key=lambda x: x[1])

output_array = []
for key, value in new_dict:
    check_values = key in array
    if(check_values == True):
        output_array.append(key)

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

https://stackoverflow.com/questions/61003831

复制
相关文章

相似问题

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