python - 从文件创建字典(包含具有多个值的键)
问题描述
我有一个文本文件包含:
A;99
B;70
D;75
A;90
D;100
B;90
B;78
C;77
我希望我的代码根据给定的文件返回一个字典,该字典将每个字母映射到该字母的所有分数的列表。
我想要的输出:
{'A':[99,90], 'B';[70,90,78], 'D':[75,100], 'C':[77]}
这是我的代码,但它不像我想要的那样工作
d = {}
with open("textfile.txt") as f:
for line in f:
(key, val) = (line.strip()).split(';')
d[key] = val
print (d)
请帮助我如何改进代码
解决方案
您需要使用 a collections.defaultdict
,当密钥不存在时,它将使用list
构造函数放置一个空的,然后您可以append
使用它
d = defaultdict(list)
with open("textfile.txt") as f:
for line in f:
key, val = line.strip().split(';')
d[key].append(val)
推荐阅读
- ios - 修改WatchKit Table View,防止将界面推送到视野之外
- reactjs - 使用 Webpack 将使用 npx create-react-app 创建的 react 应用程序捆绑到 .js 文件
- c# - renci.shhNet 执行命令的问题
- tableau-api - Tableau - 同时有条件格式 TEXT 和 CELL
- javascript - Kendo ListView:包含一个 href
- java - Java FontMetrics.getStringBounds(...) 根据 Graphics2D 返回不同的结果
- python - 从 HDF5 数据集中提取数据
- google-sheets - 您可以在 Google 表格中创建“秒”计时器吗?
- reactjs - 无操作反应 Redux 状态
- ios - 显然 flutter_google_places 需要代理服务器?