假设我有一个字典,其中一些键是单独数组中的值,如何根据字典中各自键的值对数组中的值进行排序?
例如:
投入:
dict = {'a': 4, 'b': 7, 'c': 10, 'd': 1}
array = [a, b, d]产出:
array = ['d', 'a', 'b']输出数组中值的顺序首先是"d“,因为它在字典中的值是最低的(1)。其次是"a“(4)和"b”(7)。我故意在数组中不包括"c“。
,我不是要用算法来解决这个问题
我要问的是,是否有一种简单的内置方式来完成这一任务,例如使用sorted(array, key= )类型函数。
发布于 2020-04-03 01:41:05
我觉得你想要的是:
>>> d = {'a': 4, 'b': 7, 'c': 10, 'd': 1}
>>> a = ['a', 'b', 'd']
>>> sorted(a, key=d.get)
['d', 'a', 'b']发布于 2020-04-03 01:46:38
是的,您可以使用lambda函数来返回字典中相应元素的值。
顺便说一句,我认为对变量名使用'dict‘这个词并不是一个好的做法,因为它是python中内置的单词。
print(sorted(array, key=lambda x: a_dict[x]))发布于 2020-04-03 02:08:07
您可以尝试如下: dict = {'a':4,'b':7,'c':10,'d':1} array = "a","b","d“
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)`https://stackoverflow.com/questions/61003831
复制相似问题