1.字典
1.1字典的生成
dict1={‘键’:‘值’,‘键’,值}
dict1=dict(键=‘值’,键=‘值’)
dict1={'name':'orange','age':24}
dict2=dict(name='orange',age=24)
注意:
1.字典的键必须是不可变类型,如元组,字符串
2.字典可以任意添加或修改
3.由于哈希算法的原因,字典的键值顺序可能和设置的不一样,可用list.sort()或sorted()排序
//注意2
//添加
dict1['like']='orange'
dict1
{'name': 'orange', 'age': 24, 'like': 'orange'}
//修改
dict1['name']='apple'
dict1
{'name': 'apple', 'age': 24, 'like': 'orange'}
1.2字典的索引
dict1[‘键’]
dict1.get(‘键’,预设的值)
预设值表示当查不到键对应的值时,默认返回预设值。
1.3常用操作
名称 | 功能 |
---|---|
dict1.keys() | 取键 |
dict1.values() | 取值 |
dict1.items() | 取键值对 |
dict1.update(dict2) | 将dict2的内容更新到dict1字典,若键相同,以dict2的值为准 |
dict1.pop(‘键’) | 弹出dict1对应的一对键值 |
2.元组
元组是不可变的,元组内对象为任意类型可以任意嵌套
定义方式:tup1=(1,2,3); tup2=4,
python命令
名称 | 功能 |
---|---|
tup1.index(1) | 返回值为tup1里1的位置 |
tup1.count(2) | 返回值为tup1里有几个2 |
很显然,元组也可进行列表推导来打印元组值之类的。
tup1=(1, 2, 3, 4)
res1=[i**2 for i in tup1]
res1
[1, 4, 9, 16]
//****等价于*****/
res1=[]
for i in tup1:
res1.append(i**2)
res1
[1, 4, 9, 16]
3.文件
python的文件操作很简单的
f=open(‘文件名’,‘mode’)
Mode | 作用 |
---|---|
r | 读 |
w | 写 |
a | 写操作,但不想影响以前的文件 |
b | 二进制操作 |
+ | 可读可写 |
rb | 读取二进制 |
3.1写文件
f=open('hello.txt','w')
f.write('hello world\n')
f.write('i love you')
f.close()
///写多行:file.writelines(sequence)的参数是序列,比如列表,它会迭代帮你写入文件。
lines = ['姓名:cj\n',
'年龄:24\n',
'身高:165\n']
f.writelines(lines)
这样我们就在Pycharm的文件路径下创建了“hello.txt”文件,并写入了hello world 和 i love you
3.2读文件
f=open('hello.txt')
f.read()
'hello world\ni love you'
f.read()
''
f.close()
可以观察到第二次f.read()读到的内容为空,我们可认为第一次读完,指针下移,所以每次读完加上seek(0,0)返回起始位置。
读文件常见操作
名称 | 功能 |
---|---|
f.readline() | 读取文件一行 |
f.read(size) | 读取整个f文件的的size个字符,不写就是读全部 |
f.readlines() | 读取所有行,放到列表里 |
f.seek(offset,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1当前位置,2文件末尾)偏移offset个字节 |
f=open('hello.txt')
list1=f.readlines()
for i in list1:
print(i)
hello world
i love you
由于文件是可迭代的,(自带__next__操作),因此可直接
f=open('hello.txt')
for i in f:
print(i,end='')
hello world
i love you
注意:对文件进行读写操作时,所有的对象不管其原来的类型是str,dict or tup,都会变成str类型,因此,给后来运算会造成很大麻烦,为不改变对象类型,引进pickle模块
3.3pickel对文件进行读写
名称 | 功能 |
---|---|
pickle.dump(a,f) | 将a(int,dict…)的内容倒入f |
pickle.load(f) | 读取f文件内容 |
//pickle.dump
dict1={'a':1,'b':2}
f=open('README.pkl','wb')
import pickle
pickle.dump(dict1,f)
f.close()
///pickle.load
f=open('README.pkl','rb')
dict1=pickle.load(f)
dict1
{'a': 1, 'b': 2}
3.4 with open(‘file’) as f:
为避免忘记关文件的情况,最好养成上述的使用文件的习惯
with open('hello.txt') as f:
for line in f.readlines():
print(line)