Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将txt转换为字典_Python_Dictionary_Txt - Fatal编程技术网

如何在python中将txt转换为字典

如何在python中将txt转换为字典,python,dictionary,txt,Python,Dictionary,Txt,有人能解释一下为什么将这个txt.file文件传输到字典的代码是我在下面写的答案,因为我不理解这个流程 任务:将此txt文件转换为字典 house_price.txt= land, building, distance_to_center, price 70, 50, 15, 500 70, 60, 30, 400 70, 60, 55, 300 100, 50, 30, 700 100, 70, 25, 1000 100, 70, 50, 650 120, 100, 20, 20

有人能解释一下为什么将这个txt.file文件传输到字典的代码是我在下面写的答案,因为我不理解这个流程

任务:将此txt文件转换为字典

house_price.txt=

land, building, distance_to_center, price

70, 50, 15, 500

70, 60, 30, 400

70, 60, 55, 300

100, 50, 30, 700

100, 70, 25, 1000

100, 70, 50, 650

120, 100, 20, 2000

120, 80, 50, 1200

150, 100, 50, 1800

150, 90, 15, 3000
答复:

file_house_price = open("house_price.txt", "r")

data_house_price = file_house_price.readlines()

file_house_price.close()

key_house_price = data_house_price[0].replace("\n","").split(",")

house_price = []

for lines in data_house_price[1:]:
    
    lines_house_price = lines.replace("\n","").split(",")
    
    dict_house_price = dict()
    
    for i in range(len(lines_house_price)):
        
        dict_house_price[key_house_price[i]] = lines_house_price[i]
    
    house_price.append(dict_house_price)

print(house_price)
我想问一下在这个键中替换和拆分的含义是什么?\u house\u price=data\u house\u price[0]。替换(“\n”,”)。拆分(“,”) 为什么指数是0,这行后面的意思是什么->对于数据中的行,房价[1:]和
这一行->dict\u house\u price[key\u house\u price[i]]=行\u house\u price[i]

我在答案中添加了注释来解释流程,如果不够清楚,请在问题中添加更多细节:)

#打开文件进行读取
文件\u house\u price=open(“house\u price.txt”、“r”)
#将文件中的所有行读取到变量中
data\u house\u price=文件\u house\u price.readlines()
#当我们处理完文件后,我们可以安全地关闭它(所有数据都在内存中)
文件\u房价。关闭()
#数据的第一行是以逗号分隔的列标题
#因此,我们在这里用逗号分割这一行(同时删除换行符,使用replace)
#这给了我们一个字符串列表(每个列标题)
key\u house\u price=data\u house\u price[0]。替换(“\n”,”)。拆分(“,”)
房价=[]
#循环文件中的所有剩余行(除第一行外,[1:]提供所有行,因为索引从0开始)
对于数据_house_price[1:]中的行:
#去掉换行符并用逗号分隔行
lines\u house\u price=lines.替换(“\n”,”).拆分(“,”)
#创建用于存储此行数据的字典
dict_house_price=dict()
#范围以从0到X-1的连续数字表示
#在本例中,当前行的列的所有有效索引
对于范围内的i(len(行\房价)):
#使用前面得到的列标题作为键存储行中的每个列值
dict\u house\u price[i]=line\u house\u price[i]
#将此行信息添加到数据列表中
房价。追加(直接房价)
#将收集的数据打印为输出
打印(房价)
#(格式良好的输出):
#
#[{'land':''},
#{“建筑物”:“50”,
#“到中心的距离”:“15”,
#‘价格’:‘500’,
#‘土地’:‘70’},
#{'land':''},
#{“建筑物”:“60”,
#“到中心的距离”:“30”,
#‘价格’:‘400’,
#‘土地’:‘70’},
#{'land':''},
#{“建筑物”:“60”,
#“到中心的距离”:“55”,
#‘价格’:‘300’,
#‘土地’:‘70’},
#{'land':''},
#{“建筑物”:“50”,
#“到中心的距离”:“30”,
#‘价格’:‘700’,
#“土地”:“100”},
#{'land':''},
#{“建筑物”:“70”,
#“到中心的距离”:“25”,
#‘价格’:‘1000’,
#“土地”:“100”},
#{'land':''},
#{“建筑物”:“70”,
#“到中心的距离”:“50”,
#‘价格’:‘650’,
#“土地”:“100”},
#{'land':''},
#{‘建筑物’:‘100’,
#“到中心的距离”:“20”,
#‘价格’:‘2000’,
#“土地”:“120”},
#{'land':''},
#{“建筑物”:“80”,
#“到中心的距离”:“50”,
#‘价格’:‘1200’,
#“土地”:“120”},
#{'land':''},
#{‘建筑物’:‘100’,
#“到中心的距离”:“50”,
#‘价格’:‘1800’,
#‘土地’:‘150’},
#{'land':''},
#{‘建筑物’:‘90’,
#“到中心的距离”:“15”,
#‘价格’:‘3000’,
#‘土地’:‘150’}]

您能否更具体地说明您不了解的内容?另请注意,
csv
模块可以为您做这件事。感谢您的回复,我想问一下在这个键中替换和拆分的含义是什么?\u house\u price=data\u house\u price[0]。替换(“\n”,”).split(,”),以及为什么索引为0,以及这一行后面的含义是什么?->对于data\u house\u price[1:]这一行->dict\u house\u price[key\u house\u price[i]]=line\u house\u price[i],谢谢you@jonrsharpe这看起来像是学校布置的作业,因此使用图书馆对其教育意义不大。@anna这是~4个独立的问题,其中许多问题都包含在现有的教程(参见示例)和文档(字符串方法:)中。