首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字典值=2 2dlist在i处的和

字典值=2 2dlist在i处的和
EN

Stack Overflow用户
提问于 2020-11-26 18:29:42
回答 2查看 62关注 0票数 0

我有以下2d列表和字典:

代码语言:javascript
运行
复制
List2d = [['1', '55', '32', '667' ],

         ['43', '76', '55', '100'],

         ['23', '70', '15', '300']] 

dictionary = {'New York':0, "London": 0, "Tokyo": 0, "Toronto": 0 }

如何用List2d中列的和替换字典的所有值?所以字典会是这样的:

代码语言:javascript
运行
复制
dictionary= {'New York' : 67, 'London': 201, 'Tokyo': 102, 'Toronto': 1067}

#67 comes from adding up first column (1+43+23) in 'List2d'

#201 comes from adding up second column (55+76+70) in 'List2d'

#102 comes from adding up third column (32+55+15) in 'List2d'

#1067 comes from adding up fourth column (667+100+300) in 'List2d'
EN

回答 2

Stack Overflow用户

发布于 2020-11-26 18:35:49

从Python3.7开始,dict中的键是有序的。

您可以使用枚举,以便在迭代过程中跟踪元素在dict中的位置。然后,将i用作2d列表中每一行的索引,将每个值转换为int,并对结果进行求和。

代码语言:javascript
运行
复制
List2d = [['1', '55', '32', '667' ],
         ['43', '76', '55', '100'],
         ['23', '70', '15', '300']] 

dictionary = {'New York':0, "London": 0, "Tokyo": 0, "Toronto": 0 }

for i, city in enumerate(dictionary.keys()):
    dictionary[city] = sum(int(row[i]) for row in List2d)

print(dictionary)
# {'New York': 67, 'London': 201, 'Tokyo': 102, 'Toronto': 1067}
票数 0
EN

Stack Overflow用户

发布于 2020-11-26 18:35:50

利用熊猫

代码语言:javascript
运行
复制
#!pip install pandas
import pandas as pd
pd.DataFrame(List2d, columns=dictionary.keys()).astype(int).sum(axis=0).to_dict()

产出:

代码语言:javascript
运行
复制
{'New York': 67, 'London': 201, 'Tokyo': 102, 'Toronto': 1067}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65027529

复制
相关文章

相似问题

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