1 元组
- 类型:tuple,tup=(1,2,3)或tup=1,2,3
- 不可变序列
- 元组不是空的,至少得有一个
- 元组的解包,将元组当中的每一个元素赋值给变量
tup=[1,2,3,4,5] #返回[1, 2, 3, 4, 5] <class 'list'>,**用[],返回的是列表**
tup=1,2,3,4,5 #返回(1, 2, 3, 4, 5), <class 'tuple'>
tup=(1,2,3,4,5) #返回(1, 2, 3, 4, 5), <class 'tuple'>,结果与上面是一样的
tup=tup[2] #返回 3 <class 'int'>,使用与列表一样
print(tup,type(tup))
a,b,*c=tup #元组的解包,把元组的元素赋值给前面的变量
print(a) #返回 1
print(b) #返回 2
print(c) #返回 [3, 4, 5],当变量小于元组元素数量时,可在前面的任一变量前加*,这样会获取元祖中剩余的元素
2 字典
- 映射 mapping
- 字典的特点,查询性能好,储存的性能较差
- 字典也称之为key-value的结构,键值
- 字典的使用
函数 | 含义 |
---|---|
dict() | 用函数创建字典,如d=dict(a=钢铁侠’,b=3),返回{a:‘钢铁侠’,b:2} |
get(key,default=None) | 根据键来获取字典的值。第二个参数可以指定一个,默认值,当获取不到值的时候会返回默认值 |
update | 将另一个字典的key-value添加到当前字典中 |
del | 删除字典中的key-value |
popitem() | 删除字典最后的一个key-value值,这个方法有返回值,删除之后它会将删除的key-value值作为返回值返回 |
pop(key,default]) | 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候返回默认值 |
copy() | 浅复制,只会复制字典本身,如果字典中还有字典是不会进行复制的 |
#################### 创建字典 ###################
# 使用dict()函数来创建字典
d = dict(name='钢铁侠',age=35,sex='男') #创建字典,返回{'name': '钢铁侠', 'age': 35, 'sex': '男'}
d = dict([('name','钢铁侠'),('age',35,),('sex','男')]) #返回 {'name': '钢铁侠', 'age': 35, 'sex': '男'},将一个包含有双值子序列列表转换为字典
d = dict([[1,2] ,('b','a'), ('ab')]) #返回 {1: 2, 'b': 'a', 'a': 'b'},注意格式dict([]),里面是一个序列,一个元素两个值,分别对应key和value
#################### 字典取值 ###################
d={'name': '钢铁侠', 'age': 35, 'sex': '男'}
d=d['name'] #返回 钢铁侠,通过key值,获取value值
d=d.get('name','没有值') #返回 钢铁侠 ,
d=d.get('na','抱歉没有值') #返回 抱歉没有值,get(key,default=None),键(key)有,则返回其值(value),没有,则返回默认值
#################### 字典修改 ###################
d={'name': '钢铁侠'}
d['name'] ='葫芦娃' #返回 {'name': '葫芦娃'},通过键(key),修改值(value)
d['籍贯']='中国' #返回 {'name': '葫芦娃','籍贯': '中国'},赋值key-value
d.setdefault('a','b') #返回 {'name': '葫芦娃','籍贯': '中国', 'a': 'b'},向字典中添加 key-value另一种方法。
d.setdefault('name','b') #返回 {'name': '葫芦娃','籍贯': '中国', 'a': 'b'},如果添加的key,字典中已有,则不会改变
t={'a':'b','学历':'大学'}
d.update(t) #返回 {'name': '钢铁侠','a': 'b', '学历': '大学'},添加其他字典到本字典
del d['name'] #返回 {'a': 'b', '学历': '大学'},根据键(key),删除值(value)
d.popitem() #返回 {'a': 'b'},删除最后一个值,并返回('学历', '大学')
d=d.pop('a','没有这值') #返回 b ,删除key指定的value,没有则返回默认值
3 遍历字典
函数 | 含义 |
---|---|
d.key() | 返回字典所有的key |
d.values() | 返回一个序列,序列中保存有字典的值 |
d.items() | 返回字典中的所有项,它返回一个序列,序列中包含有双值子序列,双值分别是字典中的key和value |
#################### 遍历字典 ###################
d = {'name':'钢铁侠','age':38,'sex':'男'}
d1=d.keys() #返回 dict_keys(['name', 'age', 'sex']),类型是<class 'dict_keys'>,
d2=d.values() #返回 dict_values(['钢铁侠', 38, '男']),类型是<class 'dict_values'>
d3=d.items() #返回 dict_items([('name', '钢铁侠'), ('age', 38), ('sex', '男')]),类型是<class 'dict_items'>
for i in d1:
if i=='name':
print(d[i]) #返回 钢铁侠
for i in d2:
print(i) #返回 钢铁侠 38 男
for i,j in d3:
if i=='age':
print(i,'=',j) #返回 age = 38
4 集合
- 不同点 列表
- 集合只能储存不可变对象
- 集合储存的对象是无序的
- 集合不能出现重复元素
- set() 函数可以用来创建集合
#################### 集合 ###################
s = {20,10,1,2,3,4,100,1,2,3,4,1,1,1}
s1=set(s) #返回 {1, 2, 3, 4, 100, 20, 10} 可以将序列和字典转换为集合
d={'name': '钢铁侠', 'age': 35, 'sex': '男'}
d1=set(d) #返回 {'age', 'sex', 'name'} <class 'set'> ,字典转集合,只会包含字典中的键
d2=list(d1)[0] #返回 age <class 'str'>
s = set('hello') #返回 {'e', 'o', 'h', 'l'} <class 'set'>