【问题标题】:How to add the value of keys in an array to a dictionary? [closed]如何将数组中键的值添加到字典中? [关闭]
【发布时间】:2018-03-22 01:57:26
【问题描述】:

你好,我的字典是这样的

{'A': [3, 4, 7], 'B': [4, 9, 9], 'C': [3, 4, 5], 'D': [2, 2, 6], 'E': [6, 7, 9], 'F': [2, 4, 5]}

我将如何添加数组中的值(数字)(它们已经是整数形式),以便将总数写入数组。在此之后,我将如何对字典进行排序,以便总数字最低的排在第一位?

我需要对其进行排序,因为用户将输入数据以进入这些数组。

【问题讨论】:

  • 请尽量简化代码,因为我是初学者,谢谢。
  • 这不是免费的代码编写服务。请see here学习如何写出有效的问题。
  • @somebrick 如果您自己尝试,但无法正确解决问题,请在问题中显示您尝试过的东西,这里的人们更有可能尝试帮助您。
  • 这个问题有歧义。您是否将字典中每个数组的值添加在一起并制作一个使用这些值作为值的新字典?字典根据定义是未排序的,那么想要对其进行排序是什么意思?你的意思是你想要一个OrderedDict,还是你想要例如与'A'关联的最小总和?

标签: python arrays dictionary


【解决方案1】:

要对这些值求和,您可以使用 .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)

【讨论】:

  • 如果不使用导入函数,我还能如何根据数组中的总数从字典中提取键+值?
  • @somebrick 请查看我最近的编辑。
  • works @Ajax1234 ,我将如何 dict.pop 字典中的第一个和第二个索引?
  • @somebrick 您的意思是要从final_data 中删除前两个值吗?
  • @somebrick 你需要写一个清晰、简洁的问题,说明你想从什么开始,而不是不断地向问题添加额外的要求。如果这适用于您的原始问题,您应该接受它并为任何后续问题打开一个新问题。
【解决方案2】:

这就是你想要的,下面有解释:

#!/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()

所以我们在这里所做的就是遍历您的字典中的键,然后重新分配该键以使其等于其元素的总和。您不能对字典进行排序,因此这里不涉及排序。为什么还需要对其进行排序?

【讨论】:

  • 查看已编辑的帖子,抱歉输入的值含糊不清,所以不能使用 if 语句
猜你喜欢
  • 2014-01-02
  • 1970-01-01
  • 2017-11-15
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
相关资源
最近更新 更多