python - 有没有办法将 csv 作为字典读取并在输出中添加一些字段?
问题描述
这是示例 csv 文件:
name,subject_1,subject_2,subject_3,subject_4,subject_5
Artus Syne,43,71,55,16,51
Evey Reburn,49,7,53,50,63
Giff Wickmann,63,37,21,87,9
Garrot Casetta,22,3,91,75,52
Roselle Maes,71,90,96,79,48
Torin Ziehms,71,31,83,1,25
Jaye Etock,92,9,2,78,55
Thomasina Tinkham,25,78,46,46,90
Adolphus Biernat,91,96,98,94,100
Rex Aspinell,34,75,51,38,99
我需要使用字典类似的输出:
{
'Artus Syne': {'marks': [43.0, 71.0, 55.0, 16.0, 51.0]},
'Evey Reburn': {'marks': [49.0, 7.0, 53.0, 50.0, 63.0]},
'Giff Wickmann': {'marks': [63.0, 37.0, 21.0, 87.0, 9.0]},
'Garrot Casetta': {'marks': [22.0, 3.0, 91.0, 75.0, 52.0]},
'Roselle Maes': {'marks': [71.0, 90.0, 96.0, 79.0, 48.0]},
'Torin Ziehms': {'marks': [71.0, 31.0, 83.0, 1.0, 25.0]},
'Jaye Etock': {'marks': [92.0, 9.0, 2.0, 78.0, 55.0]},
'Thomasina Tinkham': {'marks': [25.0, 78.0, 46.0, 46.0, 90.0]},
'Adolphus Biernat': {'marks': [91.0, 96.0, 98.0, 94.0, 100.0]},
'Rex Aspinell': {'marks': [34.0, 75.0, 51.0, 38.0, 99.0]}
}
dict_reader = {rows[0]:[rows[1],rows[2],rows[3],rows[4],rows[5]] for rows in reader}
显示以下输出:
{'Artus Syne': ['43', '71', '55', '16', '51'], 'Evey Reburn': ['49', '7', '53', '50', '63'], 'Giff Wickmann': ['63', '37', '21', '87', '9'], 'Garrot Casetta': ['22', '3', '91', '75', '52'], 'Roselle Maes': ['71', '90', '96', '79', '48'], 'Torin Ziehms': ['71', '31', '83', '1', '25'], 'Jaye Etock': ['92', '9', '2', '78', '55'], 'Thomasina Tinkham': ['25', '78', '46', '46', '90'], 'Adolphus Biernat': ['91', '96', '98', '94', '100'], 'Rex Aspinell': ['34', '75', '51', '38', '99']}
如何'marks'
在键值对的输出之间添加?
解决方案
dict_reader = {rows[0]:{"marks": [rows[1],rows[2],rows[3],rows[4],rows[5]]} for rows in reader} # ??
该行在您的键和值列表之间添加“标记”。
推荐阅读
- javascript - 我们可以在 js 中包含来自 .yml 的变量值以用于 if else 条件吗?
- java - 如何在我的项目中消除AlertDialog的问题
- java - java.util.Objects.requireNonNull 处的 java.lang.NullPointerException
- ios - Alamofire RequestAdapter - 修改 URL
- asp.net-core - 客户端验证在 Asp.Net Core Razor 页面的嵌套布局中不起作用
- php - 没有搜索按钮的 Laravel 下拉过滤器
- javascript - 请求表时发生错误:错误:在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1117:14) 处连接 ETIMEDOUT 52.166.80.90:443
- php - 通过匹配键组合 2 个数组
- javascript - Visual Studio Code 如何仅对更改的文件进行 lint?
- asp.net-core - IBM DB2 Core:ASP.NET Core 2.1 和 Microsoft Enterprise Libraries 的连接字符串