如何将数组中的键的值添加到字典中?
问题描述:
大家好,我的字典是这样看如何将数组中的键的值添加到字典中?
{'A': [3, 4, 7], 'B': [4, 9, 9], 'C': [3, 4, 5], 'D': [2, 2, 6], 'E': [6, 7, 9], 'F': [2, 4, 5]}
我怎么会在阵列(数字)增加值(他们已经是整数形式),因此它会写在阵列中的总。在此之后,我将如何对词典进行排序,以便最低的总数首先进入?
我需要对它进行排序,因为用户将输入数据进入这些数组。
答
综上所述值,你可以遍历使用.items()
数据,将与其相关的值在每次迭代返回键:
s = {'A': [3, 4, 7], 'B': [4, 9, 9], 'C': [3, 4, 5], 'D': [2, 2, 6], 'E': [6, 7, 9], 'F': [2, 4, 5]}
new_dict = {}
for a, b in s.items():
new_dict[a] = sum(b) #here, using sum function to get the total of all elements
字典是无序,但是,你可以保持数据在这格式:
final_data = sorted(new_dict.items(), key=lambda x:x[-1])
final_output = final_data[2:]
print(final_output)
答
这是你想要的,下面的解释:
#!/usr/bin/env python3.6
def main():
nums = {'A': [3, 4, 7], 'B': [4, 9, 9], 'C': [3, 4, 5], 'D': [2, 2, 6], 'E': [6, 7, 9], 'F': [2, 4, 5]}
for key in nums.keys():
nums[key] = sum(nums[key])
print(nums)
if __name__ == "__main__":
main()
所以我们在这里做的是循环你的字典中的键,然后重新分配该键等于它的元素的总和。你不能排序字典,所以这里不涉及排序。无论如何,你为什么需要它?
+0
请参阅编辑后的文章,抱歉模糊的值将被输入,所以你不能使用if语句 – somebrick
请让代码尽可能简单,因为我是初学者,谢谢。 – somebrick
这不是一个免费的代码写入服务。请[see here](http://stackoverflow.com/help/how-to-ask)学习如何编写有效的问题。 – vaultah
@somebrick如果你自己尝试一下,不能做对,在你尝试过的问题中展示,这里的人会尝试并帮助你。 – Vinny