九、字典
1.基础介绍
①Python将单词称为键(key),将单词对应的含义称为值(value)
②字典是python唯一的映射类型,字符串、元组和列表都是序列类型
列表中的索引值和对应元素的值没有关系,两个列表中唯一的关系是索引值相同的元素有对应关系
③用{}表示字典,由多个健和其对应的值组成,索引时用[ ];健和值的组合称为项
④也可用dict这个工厂函数(类型,不是一般的BIF)创建一个字典
2.基本用法
2.1空字典:dict={}
2.2键入方式:
2.2.1
dict = (1:’one ‘,2:’two’,3:’three’)
索引:dict[2]
‘two’
2.2.2元组的方式
括号的个数,因为dict()只接受一个参数,所以用()把键值对包括起来成为元组
2.2.3关键字参数
dict4 =dict(小甲鱼=‘让编程改变世界’) #小甲鱼不能加引号
索引:dict4
小甲鱼=‘让编程改变世界’
2.2.4 直接改变字典的值
①若改变字典中原有健的值:
dict4[‘小甲鱼‘] = ‘让python改变世界’
索引:dict4
{‘小甲鱼’: ‘让python改变世界’}
②字典中没有的健
dict4[‘爱迪生’]=’天才是…’
索引:ditc4
{‘小甲鱼’: ‘让python改变世界’, ‘爱迪生’:’天才是…’}
3.内置方法
3.1 adict.keys() 返回一个包含字典所有KEY的列表;
3.2 adict.values() 返回一个包含字典所有value的列表;
3.3 adict.items() 返回一个包含所有(键,值)元祖的列表;
3.4 adict.clear() 删除字典中的所有项或元素;
3.5 adict.copy() 返回一个字典浅拷贝的副本;
直接赋值并没有创建新的内存空间
3.6 adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
fromkeys(…) 创建并返回一个新的字典
dict. fromkeys(s[,v]) -> New dict with keys from S and
values equal to v (v defaults to None)
初始化一个空字典:
注意,仅仅是返回一个新字典,并不能改变旧字典,要想改变必须用a = a.fromkeys
3.7 adict.get(key, default = None)
返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
一般来说如果试图访问字典中不存在的项时会出错,而用get就不会
3.8 in 、 not in;
3.9 adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
3.10 adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
3.11 adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值;
3.12 adict.update(bdict) 将字典bdict的键值对添加到字典adict中。
字典中的键,值,键值对用 .keys() .values() .items()表示
十、集合
无序 去重 不能索引
num = {}
type(num) –>’dict’
num2 ={1,2,3,4,5}
type(num2) –> ‘set’
num2 = {1,1,1,1,1,2,2,2,,2,,2}
–> {1,2}
1.创建的两种方法
用{} 把数字 括起来.
set() : set1 = set([1,1,1,1,2,2,2,2,2,2])
2.如何访问set中的值
for 打印
in 方法 1 in num1
3.num2.add(9) 添加
4.num2.remove(9) 删除
frozen 冻结的,设置一个不可变set
num3 = frozeset([1,2,3,666])
这种set不能添加
28-文件-想输出.
1.打开文件
使用 open 打开文件.
help()
十一、文件
1.用open打开文件:
打开的模式有:
‘r’-以只读方式打开文件(默认)
‘w’-以写入的方式打开 文件,会覆盖已存在的文件
‘x’-如果文件已经存在,使用此模式打开将引发异常
‘a’-0双写入模式撕开,如果文件存在,则在末尾追加写入
‘b’-以二进制模式打开文件
‘t’-以文本模式打开(默认)
‘+’-可读写模式(可添加到其他模式中使用)
‘U’-通用换行符支持.
例:
open(‘e:\test.txt’) # 两个\因为要转译(可以用u”),打开方式用了默认所以就不用写
f = open(‘e:\test.txt’) # 赋值给一个对象
2.文件对象的方法:
f.close() 关闭文件
f.read(size = -1) 从文件读取size个字符,当未给定size或给定负值的时候,
读取剩余的所有字符,然后作为字符串返回.指针移动到文件的不可末尾.
f.readline() 以写入模式打开,如果文件存在,则在末尾追加写入
f.write(str) 将字符串str写入文件
f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象.
f.seek(offset,from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
f.tell() 返回当前在文件中的位置.
可以用list(f)把文件直接转换成为一个列表.
3.读取文件对象中的内容:
for i in f: (推荐这种方法)
print(i)
4.文件的写入:
打开方式一定要是 ‘a’或’w’
f = open(‘e:\test.txt’,’w’)
f.write(‘xxoo’)
f.close
5.
例1:
def save_file(goy, girl, count):
file_name_boy = ‘boy_’ + str(count) + ‘.txt’
filr_name_girl = ‘girl’ + str(count) + ‘.txt’
boy_file = open(file_na