Python基础学习笔记DAY3
1.字典表 dict
1.1 基本概念
(1)映射类型,通过键值对应存储索引
(2)与列表的区别:列表不能访问不存在的索引
(3)列表不能作为键,只能是不支持原位改变的类型作为键
(4)列表支持嵌套
emp = {'age':20,'name':{'firstname':'Jerry','lastname':'Lee'}}
emp['name']['firstname'] //取出
1.2 定义代码
(1)通过字面值定义
d={'ISBN':'223421','Title':'python入门','price':39.00}
(2)通过dict构造函数声明
emp = dict (name='Mike', age=20,job='dev')
ps: 呈现的顺序不是输入顺序,乱序(根据键哈希以后产生的结果)
1.3 基本操作
(1)通过方括号下标索引来找
emp[0]
(2)插入一个值
d['author']='Jerry'
(3)检索某一键值(防止抛异常)
d.get('price')
//or 用get设置默认值防止抛异常
d.get('price',0.0)
(4)求字典表长度
len (emp)
(5)字典表可以原位改变
d['Price']=99.00
(6)字典表的合并
dep = {'department':'技术部'}
emp.update(dep)
(7)弹出某一项
emp.pop('age')
(8)只关注键
dict.keys() //返回类型为视图
(9)只关注值
dict.values()
for k in emp.keys():
print(k) //返回类型为视图,可像列表一样遍历
(10)关注类型和值
emp.items()
(11)形式变换:
for k,v in emp.items():
print('{}=>{}'.format(k,v))
(12)排序
//方法1:转化为列表后用排序函数
ks = list(d.keys())
ks.sort()
for k in ks:
print(d.get(k))
//方法2:用sorted全局函数:
ks=d.keys()
for k in sorted(ks):
print(k,d.get(k))
2.元组 tuple
2.1 基本概念
(1)与列表类似,但不支持原位改变,圆括号声明。
(2)是任意对象的有序集合,通过下标访问,属“不可变”类型,长度固定,任意类型,任意嵌套
2.2 定义代码
//方法1:
(1,2)
(1,2)+(3,4)
//方法2:
1,2
//单个元素声明元组(逗号用来标识类型)
x=(40,)
x=40,
2.3 基本操作
(1)求长度
len(x)
(2)元组的推导
//对元组中的数值求平方
//方法1:
for x in t:
print(x**2)
//方法2(放入列表中):
res = []
for x in t:
res.append(x**2)
//方法3:推导
res = [x**2 for x in t]
(3)检索元素位置
t.index(3)
(4)统计元素次数
t.count(3)
(5)namedtuple类
from collections import namedtuple
Employee = namedtuple ('Employee', ['name','age','department','salary'])
Jerry= Emloyee('Jerry',age=30,department='财务部',salary=9000.0)
Jerry.name
3.文件 file
3.1 基本操作
(1)写文件
myfile=open('hello.txt','w')
myfile.write('优品课堂\n')
myfile.close()
//mode: r(读) w(写)a(追加) b(二进制文件)+(读+写)
(2)读取文件
f=open('hello.txt','r') //'r'可省略,rb为读取二进制文件
f.read() //读取所有内容
//read相当于指针
(3)读取单行
f = open('hello.txt') //重新打开
f.readline()
f.readline()
(4)读取后放入列表:
l = open ('hello.txt').readlines() //类型为列表
for line in l
print(line)
(5)中文文件内容时为了防止乱码可指定编码:
f = open ('course.txt','w',encoding='utf8')
(6)解决类型丢失问题
//无法保存数据类型的情况
x,y,z=1,2,3
l=[1,2,3]
f=open('datafile.txt','w')
f.write('{},{},{}'.format(x,y,z))
f.write(str(l))
f.close()
//or
chars = open('datafile.txt').read()
序列化–pickle存取python对象
//可保存数据类型的情况--序列化--pickle存取python对象
d ={'a':1,'b':2}
f = open('datafile.pkl','wb')
import pickle
pickle.dump(d,f)
f.close()
打开方式
–1 用记事本打开乱码
–2 用open(‘datafile.pkl’,‘rb’).read() 打开时读取无意义
–3 有效打开方式
//可保存数据类型的情况--序列化--pickle存取python对象
f = open ('datafile.pkl','rb')
data=pickle.load(f)
data['a']
data.get('b')
(7)防止忘记关闭文件的做法
//传统方法,需要close()
f=open('course.txt')
l=f.readlines()
for line in l
print(line)
close()
//新方法
with open('course.txt') as f
for line in f.readlines()
print(line)
4.数据类型汇总
4.1 集合
(1)序列 可变(列表list)/不可变(字符串string,元组tuple,字节数组)
(2)映射 字典表dict
(3)集合 set:集合信息不能有重复,花括号,但没有键
4.2 数字
(1)整型 int/boolean
(2)浮点型 float/decimal/fraction
4.3 可调用
(1)函数 function
(2)生成器 Generation
(3)类 Class
(4)方法
4.4 其他
(1)模块
(2)实例
(3)文件
(4)None
(5)视图
4.5 内部
(1)type
本文介绍了Python基础学习的第三天内容,主要涵盖字典表(dict)、元组(tuple)和文件(file)的基础知识和操作。字典表是一种映射类型,通过键值对存储,支持各种操作如插入、检索和改变;元组与列表类似但不可变,支持下标访问;文件操作包括读写文件,并讨论了防止乱码和类型丢失的方法。此外,还对数据类型进行了汇总,包括序列、映射、集合、数字、可调用和其他类型。

1095

被折叠的 条评论
为什么被折叠?



