首页 > 解决方案 > Python:将文件读入字典/列表

问题描述

我对python很陌生,目前在将数据从文件导入小游戏时遇到问题。

我有一个格式如下的文件:

Playername1
A;0,1;0,2;0,3
B;1,1;1,2;1,3

我目前正在尝试找到一种方法将其导入字典,其中 Player Name 作为键,字典列表包含字母(在每行前面)作为键,值是元组列表(坐标)。

到目前为止我已经尝试过(但失败了):

将 dict() 函数与 readlines() 函数以及 split(;) 函数结合使用来分割坐标。但是,每当我尝试使用截止日期(1)阅读第一行时,它都不会返回整行。

寻找一种相当有效的方法。非常感谢任何帮助。

标签: pythondictionaryfile-handling

解决方案


使用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']]}]}

推荐阅读