我有一本像这样的字典:
{a: ['1', '2'], b: ['3', '4']}
如何实现代码,使字典中的值被添加并按递减值顺序排序,如下所示:
{b : 7, a : 3}
在高级感谢!
这可以通过以下方式实现:
d = {'a': ['1', '2'], 'b': ['3', '4']}
d = {value: sum(int(j) for j in key) for value, key in d.items()}
d = sorted(d.items(), key = lambda x:d[x[0]], reverse = True)
d = {key: value for key, value in d}
希望这能帮上忙。
谢谢,
伊塞
这里有一个解决方案,我认为可以解释一些可能会让你绊倒的错误。
testDictionary = {"a": [1, 2], "b": [3, 4]}
def sumDictionaryParts(dictionary):
for variable in dictionary:
sumOfValues = sum(dictionary[variable])
dictionary[variable] = sumOfValues
return dictionary
print(sumDictionaryParts(testDictionary))
我认为您的意思是使字典中每对的键都是带“”的字符串,并将值保留为整数,这样您就不必担心类型了。 它通常也有助于当你有像这样的一般问题时,制作一个子例程,然后你可以用其他输入测试它,并确保它工作。
如果您正在寻找一个学习python词典的好网站,我几年前就用过这个网站,它对我很好:)
https://www.w3schools.com/python/python_dictionaries.asp
继续编码!
如果你需要一个
sample_dict = {"a": ["1", "2"], "b": ["3", "4"], "c": ["5"]}
sample_dict = {key: sum(map(lambda x: int(x), sample_dict[key])) for key in sample_dict}
sample_dict = {
key: sample_dict[key]
for key in sorted(sample_dict, key=sample_dict.get, reverse=True)
}
print(sample_dict)
输出:
{'b': 7, 'c': 5, 'a': 3}