字典表
声明
1.默认方法
>>>d={"name":"zhangsan","age":18}
>>>d
Out[3]: {'name': 'zhangsan', 'age': 18}
2.构造函数
In[2]: emp=dict(name='Mike',age=20,job='dev')
In[3]: emp
Out[3]: {'name': 'Mike', 'age': 20, 'job': 'dev'}
获取值的方法
1.d[字典的键]
2. .get()方法
In[4]: emp.get('name')
Out[4]: 'Mike'
合并函数updata
将两个字典合并
In[5]: dep={'department':'xxx'}
In[6]: emp.update(dep)
In[7]: emp
Out[7]: {'name': 'Mike', 'age': 20, 'job': 'dev', 'department': 'xxx'}
获得键或值的方法
In[9]: emp.keys()
Out[9]: dict_keys(['name', 'age', 'job', 'department'])
In[10]: emp.values()
Out[10]: dict_values(['Mike', 20, 'dev', 'xxx'])
In[12]: emp.items()
Out[12]: dict_items([('name', 'Mike'), ('age', 20), ('job', 'dev'), ('department', 'xxx')])
In[13]: for k,v in emp.items():
...: print('{}:{}'.format(k,v))
...:
name:Mike
age:20
job:dev
department:xxx
将键排序的方法
1.将.keys()放入一个变量转换为列表
2.使用全局函数sorted()方法
删除某键值对
.pop(‘键’)方法
元组
特性
和数组相似,只是元组内元素不可变
常用方法
.count(val)和.index(val)和数组类似
namedtuple
和类比较相似的一种简单的结构
In[8]: Emp=namedtuple('Employee',['name','age','salary'])
In[9]: tom=Emp(name='Tom',age=20,salary=9000)
In[10]: tom
Out[10]: Employee(name='Tom', age=20, salary=9000)
In[11]: tom.name
Out[11]: 'Tom'
文件操作
基本语法
file=open(‘文件路径’,mode)
mode:
读r
写w
追加a
二进制b
读写+
In[12]: f=open('a.txt','w')
In[13]: f.write('好好学习\n天天向上\n')
Out[13]: 10
In[14]: f.write('abcdefg')
Out[14]: 7
In[15]: f.close()
此时,文件中文是乱码,可以如下方法改变
In[18]: f=open('a.txt','w',encoding='utf8')
In[19]: f.write('你好\n')
Out[19]: 3
In[20]: f.close()
此时就不是乱码了
读取操作
读取所有内容
read()
读取一行
readline()
读取所有行列表
readlines()
pickle
一种可以将字典保存在二进制文件并读取的相关模块,对应的文件后缀是.pkl
使用起来比较方便,而且用一般的读取方法会得到一些看不懂的内容
In[29]: d={'a':1,'b':2}
In[30]: f=open('d.pkl','wb')
In[31]: import pickle
In[32]: pickle.dump(d,f)
In[33]: f.close()
In[36]: f=open('d.pkl','rb')
In[37]: f.read()
Out[37]: b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02K\x02u.'
In[39]: f=open('d.pkl','rb')
In[40]: data=pickle.load(f)
In[41]: data
Out[41]: {'a': 1, 'b': 2}
文件自动关闭的方法
自动关闭
with open(‘文件路径’) as f:
In[46]: with open('b.txt','r') as f:
...: f.read()
...:
In[47]: with open('b.txt','r') as f:
...: print(f.read())
...:
123456