1、字典表dict
- 声明
- {键: 值,...}
- dict(键=值)
d = {'isbn':'13123','title':'python入门'} #字典表中的键不能使用诸如列表这种可以改变的,只能使用其他字符串或者元组等 d['title'] # 列表list[]可以改变其中的元素,但是不能赋新元素给列表
'python入门'
- 操作
- 获取:d['键']、 d.get('键', 默认值)
d['author'] #直接查询表中元素,若是不存在的话就会有报错信息 d.get('author') # 使用get方法,如果不存在的话就不会出现报错信息 d.get('author', 0.0) #规定不存在的报错内容
KeyError: 'author' 0.0
- 合并:d.update(d2)
emp = dict(name = 'Mike', age = 20, job = 'dev') #创建字典表的一种方式 dep = {'department':'技术部'} #使用update来添加字典表 emp.update(dep) emp
{'name': 'Mike', 'age': 20, 'job': 'dev', 'department': '技术部'}
- 属性
- keys()
- values()
- items()
emp.keys() #查看键 emp.values() #查看值 emp.items()
dict_keys(['name', 'job', 'department']) dict_values(['Mike', 'dev', '技术部']) dict_items([('name', 'Mike'), ('job', 'dev'), ('department', '技术部')])
- 排序键
- 将keys()放入列表
- 使用全局函数sorted()
ks = d.keys() ks.sort() #不能直接排序,会报错
报错信息如下:
AttributeError: 'dict_keys' object has no attribute 'sort'
第一种:
ks = list(d.keys()) ks.sort() ks for k in ks: print(d.get(k))
['a', 'b', 'c', 'd'] 1 2 3 4
第二种:
ks = d.keys() for k in sorted(ks): print(k, d.get(k))
a 1 b 2 c 3 d 4
2、元组tuple
- 特征
- 任意对象有序集合
- 通过下标访问
- 属“不可变”类型
- 长度固定,任意类型,任意嵌套
- 声明
- (元素,)
(1,2) + (3,4) 1,2 #赋值
(1, 2, 3, 4) (1, 2)
x = (40) #只有单个元素,赋值后是整数,非元组 type(x) x = (40,) 使用这两种方式 type(x) x = 40, type(x)
int tuple tuple
- index(val):查找索引
- count(val):统计数量
- namedtuple
from collections import namedtuple Employee = namedtuple('Employee', ['name', 'age','department','salary']) jerry = Employee('Jerry',age = 30, department = '财务部', salary = 9000.0) jerry.name jerry.salary
'Jerry' 9000.0
文件与类型汇总
- 基本语法
- file = open('文件名',mode)
- mode:'r', 'b', 'w', 'a'
myfile = open('hello.txt', 'w') #创建文件 myfile.write('优品\n') #创建文本内容,并返回字符数量 myfile.close() #关闭文件
3
操作
1.read()
f = open('hello.txt', 'r')#默认是r模式,可以不写
f.read()
f.read()
第一次结果:'优品\nHello world!\n'
第二次输出:'' #连续操作两次,内容不一样
2.readline()
f = open('hello.txt')#默认是r模式,可以不写
f.readline() #一次读取一行
f.readline()
'优品\n'
'Hello world!\n'
3.readlines()
l = open('hello.txt').readlines()
for line in l:
print(line)
优品
Hello world!
4.close()
f = open('course.txt','w', encoding = 'utf8')
f.write('优品\nHello world!\n')
f.write('www.codeclassroom.com')
f.close()
16
21
- 其他操作
f = open('datafile.txt','w')
x,y,z = 1,2,3
f.write('{},{},{}'.format(x,y,z))
l =[1,2,3]
f.write(str(l))
f.close()
5
9
- pickle存取Python对象
- dump(对象,目标文件)
d = {'a':1,'b':2} f = open('datafile.pkl', 'wb') import pickle pickle.dump(d,f) #把字典表d放到文件f里面 f.close() open('datafile.pkl','rb').read()
b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02K\x02u.'
- load(文件)
f = open('datafile.pkl', 'rb') data = pickle.load(f) data
{'a': 1, 'b': 2}
- with方法加载文件
with open('course.txt') as f: #结束后会自动释放资源
for line in f.readlines():
print(line)
浼樺搧
Hello world!
www.codeclassroom.com
4、汇总
1.集合
- 序列
- 可变:list
- 不可变:字符串str、元组tuple、字节数组
- 映射
- 字典表dict
- 集合
set
2.数字- 整型:int、boolean
浮点型:float、Decimal、...
3.可调用
- 函数 function
- 生成器 Generator
- 类 class
- 方法
3.其他 - 文件
- 视图
- None
3.内部 - type