博客
关于我
Python_字典、元组、文件
阅读量:509 次
发布时间:2019-03-07

本文共 2297 字,大约阅读时间需要 7 分钟。

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 worldi love you

由于文件是可迭代的,(自带__next__操作),因此可直接

f=open('hello.txt')for i in f:    print(i,end='')    hello worldi love you

注意:对文件进行读写操作时,所有的对象不管其原来的类型是str,dict or tup,都会变成str类型,因此,给后来运算会造成很大麻烦,为不改变对象类型,引进pickle模块

3.3pickel对文件进行读写


名称 功能
pickle.dump(a,f) 将a(int,dict…)的内容倒入f
pickle.load(f) 读取f文件内容
//pickle.dumpdict1={   'a':1,'b':2}f=open('README.pkl','wb')import picklepickle.dump(dict1,f)f.close()///pickle.loadf=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)

转载地址:http://dgrjz.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
查看>>
Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
查看>>
Mysql学习总结(78)——MySQL各版本差异整理
查看>>
Mysql学习总结(79)——MySQL常用函数总结
查看>>
Mysql学习总结(7)——MySql索引原理与使用大全
查看>>
Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
查看>>
Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
查看>>
Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
查看>>
Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
查看>>
Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
查看>>
Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
查看>>
Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
查看>>
Mysql学习总结(9)——MySql视图原理讲解与使用大全
查看>>
Mysql学习笔记 - 在Centos7环境下离线安装Mysql
查看>>
MySQL学习笔记十七:复制特性
查看>>
Mysql学习第一课-mysql的定义及sql语句
查看>>
mysql学号的字符长度_MYSQL--2
查看>>
mysql安全模式: sql_safe_updates
查看>>
mysql安装,卸载,连接
查看>>
MySQL安装之没有配置向导
查看>>