字典型数据的构造
概述
本次作业第一个坑住我的是如何把规律的文件转换为字典型数据。所以重点Review该内容。
相关文档
知识点说明
构造字典的经典基础
官方文档给了几种方式:
b = {'one': 1,'two': 2,'three': 3}
e = dict({'one': 1,'two': 2,'three': 3})
a = dict(one = 1, two = 2, three = 3)
c = dict(zip(['one','two','three'],[1,2,3]))
d = dict([('one',1),('two',2),('three',3)])
其中b和e类似可以一起记忆,a、c、d都是利用dict()函数进行构建。但是,这些方法并没有解决题目中的问题,这是让我非常困惑的地方。
利用JSON格式
在文档7. Input and Output的最后提到了7.2.2. Saving structured data with json。 经过尝试,最终放弃,因为要完全模拟字典构造数据的结构,还需要通过代码对字符串做很多操作:
- 增加大括号{}
- 每个数据加上引号
- 把中间的逗号改为冒号
- 每行最后加上逗号
填充空字典
上面的方法依然没有解决题目中要求的问题,受到Python - Read a text file into a dictionary的启发得以解决问题。核心代码如下:
f = open('file_name','r')
d = {} #构造空字典
for line in f:
x = line.split(',')
a = x[0]
b = x[1]
c = len(b)-1
b = b[0:c]
d[a] = b
print(d)
这其中涉及到几个自己从来没有接触到的内容:
- for循环还可以这么用(单独的文字说明)
- split()函数(单独的文字说明)
- 为空字典赋值,官方文档有如下的说明
d[key] = value
# Set d[key] to value.
更多
关于字典型数据,以前很少接触,其实在字典构造背后应该是对文本文件的加工处理逻辑。
基于练习的字典构造,我想到以下几点:
可以构造其他的类似案例,例如学校的成绩单数据(无论是csv还是txt格式),读入系统后进行组织查询。
- 利用python的处理
- 利用pandas或者numpy进行处理
是否可以写一个函数,以后方便自己的调用,专门用于处理txt文件等
ChangeLog
170111 新建