一:元组
1)定义
元组:有序,可以按索引取值,不可变,但是可以修改元组里面可变数据的数据内容。
res = (1,2,3,4,3,2,1)
2)内置方法和使用
res.count(1)
返回值:2
可以count,说明可以存放多个同样的数据
res.index(2,3,6)
返回值:5
二:字典
1)字典的定义:
字典无序,可以按key取值,key可以为所有不可变类型的数据,values可以为所有类型数据。
例:name={"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"songjiang"}
2)字典的内置方法和使用
1.取值
常用取值为key,但是当key不存在于字典中时,会报错
name.get(key)
如果不存在于字典,则返回None,若存在,则返回value
2.keys,values,items
name={"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"songjiang"}
print(name.keys(),type(name.keys()))
#返回值:dict_keys(['one', 'two', 'three', 'four']) <class 'dict_keys'>
print(name,values(),type(name.values()))
#返回值:dict_values(['wusong', 'likui', 'ruanxiaoqi', 'songjiang']) <class 'dict_values'>
print(name.items(),type(name.items()))
#返回值:dict_items([('one', 'wusong'), ('two', 'likui'), ('three', 'ruanxiaoqi'), ('four', 'songjiang')]) <class 'dict_items'>
#三种方式的返回值都不是原生列表,无法直接按索引取值,但是可疑的通过for迭代取出,或者直接强制转换为list类型,再按照索引取出。
3.增加包含的值
①update
②setdefault
name={"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"songjiang"} name.update({"four":"sunerniang","five":"ruanxiaoer"}) print(name) #返回值:{"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"sunerniang","five":"ruanxiaoer"} #遵从:原来字典有相同key则覆盖,无则添加。 name={"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"songjiang"} name.setdefault("five",None) print(name) #返回值:name={"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"songjiang","five":None} #原先字典有的key则忽视更新,没有的key则按第二个参数为value创建
name.fromkeys(["six","seven"],None)
#不改变字典里面的值,若为空字典,则迭代取出key,value为None
4.去值
name={"one":"wusong","two":"likui","three":"ruanxiaoqi","four":"songjiang"} pop_data=name.pop("two") print(pop_data,name) #返回值:likui {'one': 'wusong', 'three': 'ruanxiaoqi', 'four': 'songjiang'} #pop按key弹出值,有返回值。
pop_data2=name.popitems()
print(pop_data2)
#返回值:('four', 'songjiang')
#popitems默认弹出最右的item,有返回值。
三:集合
1)set集合的定义
1.为单列数据集合(常见单列数据集合有:list,str,tuple,set,双列数据集合:dict)
2.无序无key,无法取值
3.可变数据,内部可以存放任意类型的多个数据,但是数据具有唯一性
2)内置方法与使用
1.交集,&,intersection
2.并集,|,union
3.差集,-,difference
4.对称差集,^,symmetric_difference
a={1,2,3,4,5} b={3,4,5,6,7} print(a.intersection(b)) print(a&b) #返回值:{3, 4, 5} print(a.union(b)) print(a|b) #返回值:{1, 2, 3, 4, 5, 6, 7} print(a.difference(b)) print(a-b) #返回值:{1, 2} print(a.symmetric_difference(b)) print(a^b) #返回值:{1, 2, 6, 7}
在所有的运算后加_update就变为了替换原有数据,更新列表
5.父子集合
a={1,2,3} b={2,3,} print(a>b) print(a<b) print(a==b) #返回值:True False False