python - Python:将文件读入字典/列表
问题描述
我对python很陌生,目前在将数据从文件导入小游戏时遇到问题。
我有一个格式如下的文件:
Playername1
A;0,1;0,2;0,3
B;1,1;1,2;1,3
我目前正在尝试找到一种方法将其导入字典,其中 Player Name 作为键,字典列表包含字母(在每行前面)作为键,值是元组列表(坐标)。
到目前为止我已经尝试过(但失败了):
将 dict() 函数与 readlines() 函数以及 split(;) 函数结合使用来分割坐标。但是,每当我尝试使用截止日期(1)阅读第一行时,它都不会返回整行。
寻找一种相当有效的方法。非常感谢任何帮助。
解决方案
使用csv
模块。读取第一行并存储在主密钥中
然后读取其余行并使用列表切片构建字典列表。要创建列表,请split
对每个单元格值应用以创建 2 元素列表。
import csv
with open("input.csv") as f:
cr = csv.reader(f,delimiter=";")
master_key = next(cr)[0]
dict_list = [{row[0]:[x.split(",") for x in row[1:]]} for row in cr]
result = {master_key:dict_list}
>>> result
{'Playername1': [{'A': [['0', '1'], ['0', '2'], ['0', '3']]},
{'B': [['1', '1'], ['1', '2'], ['1', '3']]}]}
推荐阅读
- awk - 按模式剥离文件的最后一部分 - 从链中删除最后一个证书
- android - 适用于 Android 的 ShawnLin numberpicker 库 - 如何使文本垂直对齐?
- matlab - 使用 lsim 时设置 u 向量
- excel - 给定 StartDate 和 EndDate,返回 Dates 表中的匹配行
- android-studio - Android Studio 在每个文件上显示 C++ 文件图标
- node.js - 通过 Doctl 部署到 DigitalOcean 应用平台时出现 500 HTTP 错误
- reactjs - 即使使用 react-script 3.4.3,CRA 可选链接也不起作用
- android-studio - RecyclerView(Kotlin):使用 SQL 数据库中的数据在 ToDo 应用程序上添加滑动以删除功能
- r - 加快债券期限计算
- javascript - 将 JS 扩展用于 ESLINT 和 Stylelint 等配置文件有什么好处吗?