元组的内置方法
什么是元组(了解)
只可取,不可更改的列表
作用
元组一创建就被写死了
定义方式
()内用逗号隔开隔开多个元素(可以为任意数据类型)
如果元组只有一个元素,必须得加逗号
tup=(1,2,3)
tup=(3,)
使用方法
1.索引取值
print(tup[0])
2.索引切片
print(tup[0:3])
3.for循环
for i in tup:
print(i)
4.成员运算
print(0 in tup)
5.len长度
print(len(tup))
6.index获取元素索引
print(tup,index(1))
7.count计数
print(tup,count(2))
有序or无序
有序
可变or不可变
压根不存在这一说法
字典内置方法
作用
存储多个数据,对每个数据具有描述
定义方式
{}内用逗号隔开多个键key(具有描述意义,不能为可变数据类型):值value(任意数据类型)对
dic={'name':1}
dic={0:'功能1',1:'功能2'}
使用方法
优先掌握
1.按key取值/按key修改值
dic={'a':1,'b':2,'c':3}
print(dic['a'])
dic['b']=4
2.添加值,没有就添加,有就修改
dic['d']=4
print(dic)
3.for循环
for i in dic:
print(i)
4.成员运算
print('a' in dic)
5.len长度
print(len(dic))
6.keys/values/items
print(dic.key())#看成列表
print(dic.values())#获取所有值
print(dic.items())
for i in dic.items():
print(i)
for k,v in dic.items():
print(k,v)
需要掌握
get:获取
dic={'a':1,'b':2,'c':3}
print(dic[s])# 报错
print(dic.get('b'))# 没有就返回None
print(dic.get('b',1))# 没有就返回None,可以给定一个默认值
update:更新,等同于list里的extend
dic1={'a'=1,'c'=2}
dic2={'b'=1,'d'=2}
dic1.update(dic2)
fomkeys
print(dict.fromkeys([1,2,3,4]))#{1: None, 2: None, 3: None, 4: None}
setdefault :字典有这个key,就不修改,没有则增加
dic.setdefault('j',2)
dic.setdefault('a',2)
有序or无序
无序
可变or不可变
可变
散列表(哈希表)
1.首先对key做了哈希处理(能对所有数据类型都可以哈希处理):梅森旋转算法(生成伪随机数)--》通过哈希处理对于每个key他都可以生成一个序列(永不重复,相同的东西进入哈希处理,结果相同)
2.使用哈希函数对刚刚生成的序列(纯数字),对纯数字除9取余(0,1,2,3,4,5,6,7,8)
集合内置方法
什么是集合:交集/并集/补集/差集
作用
1.进行上述运算
2.去重
3.乱序--》基于散列表实现的
定义方式
{}内以逗号隔开多个元素(不可变元素)
s={}#空字典
s=()#空集合
使用方法
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
# 并集
print(pythoners | linuxers)
# 交集
print(pythoners & linuxers)
# 差集
print(pythoners - linuxers)
# 补集
print(pythoners ^ linuxers)
# add(*******)
pythoners.add('oscar')
print(pythoners)
pythoners,remove('oscarl')#没有报错
print(pythoners)
pythoners.discard('oscal')#没有不报错
print(pythoners)
有序or无序
无序
可变or不可变
可变
数据类型总结
存值个数
存一个值:整型/浮点型/字符串
存多个值:列表/元组/字典/集合
有序or无序
有序:字符串/列表/元组
无序:字典/集合
可变or不可变
可变:列表/字典/集合
不可变:整型/浮点型/字符串/元组
深浅拷贝
拷贝
当lt2为lt1的拷贝对象时,无论lt1内部为可变类型还是不可变类型,lt1内部元素变化,lt2也变化
浅拷贝
当lt2为lt1的拷贝对象时,lt1内部的不可变元素变化,lt2不变。lt1内部的可变元素变化时,lt2也随之变化
深拷贝
当lt2为lt1的拷贝对象时,无论lt1内部的可变元素或不可变元素怎么变化,lt2都不会变化。