一、元组
就是一个不可变列表,按照索引存,只读模式
定义:(, , , )用,隔开每个元素
只要元组内的内存地址不改元组就不会变,要是存储不用改的数据就可以使用元组
特殊:如果元组中只有一个元素,必须在其后面加逗号
二、字典
{ }用逗号分隔开多个key:value,其中value可以是任意类型,但是key必须是不可变类型
空{ }是空字典
可以用dict()直接转换成字典
按照关键字存取值,可存可取,赋值操作中如果关键字存在,则可以修改,如果关键字不存在,则创立新值
字典更新操作 字典名.update({关键字一:新值,关键字二:新值,······})
字典名.setdefault(关键字,值)如果字典中有则不添加,返回字典中关键字的对应值,如果没有关键字,则加进字典
三、集合
在{ }内用,隔开多个元素,多个元素满足下列条件:
1、集合内元素必须是不可变类型
2、集合内元素无序
3、集合内元素没有重复
集合名=set()才是定义空集合 因为{ }是定义空字典
集合内的操作:
1、交集:&
2、并集:|
3、差集:-
4、对称
差集:^去掉共同元素
5、父子集:> <
四、补充:字符编码
1、前提:所有软件都是运行在硬件之上的,与运行软件相关的三大核心硬件是cup、内存、硬盘,我们需要明确三点:
1、软件运行前,软件的代码以及相关数据都是存放在硬盘中的
2、任何软件的启动都是将数据从硬盘中读入内存,然后cup从内存中取出指令并执行
3、软件运行过程中产生的数据是存放于内存中的,若想永久保存软件产生的数据,则需要将数据存入内存
2、字符编码表:就是一张字符与数字对应的表
3、类型:
1、ASCII表:只支持英文字符串,采用8位二进制数对应一个英文字符串
2、GBK表:支持英文、中文字符,采用8位(8bit=1Bytes)二进制数对应一个英文字符,采用16位(16bit=2Bytes)二进制数对应一个中文字符
3、unicode(内存中统一使用unicode):兼容万国字符,采用16位(16bit=2Bytes)二进制数对应一个中文字符,我们可以改变的是存入硬盘中的格式
4、对于文本文件乱码问题:存乱了:编码格式设置为支持文件内字符串的格式
取乱了:文件是以什么编码格式存入硬盘的就应该以什么格式读入内存