散列类型(字典与集合)
1.无序列表,与有序列表差不多,一样是储存数据。
特征:内部是无序的,没有index下标值。
2.字典(定义):与列表类型差不多,都是储存各种数据,是可变长的数据类型。但与列表不同的是,字典是没有下标值的(index)。
特征:有[键值对]=[key:value]组成。
通过key来标识value数值,key值是唯一不可重复,value值可以重复。
key可以进行标识位置,并且key可以灵活性大于index.
举个例子:一把钥匙一把锁,但是一把锁可以有多把钥匙。
格式:dict={key:value}
例如:a={"Name":"资名扬","Age":"19","Height":"176.2"}
print(a)
print(type(a))
b={"tuple":(1,2,3,4,5),"list":[1,2,3,4],"dict":{'1':1,'2':2}}
print(b)
print(type(b["list"]))——>看是否真的储存了数据并辨认数据类型。
拓展:key的值可以用数字、字符串和元组组成,但是不能用list列表和dict字典作为key。
例如:
a={1:1,"1":1,(1,):(1,)}
print(a)
3.字典方法:(增删改查)
增加与修改:
update()
格式:
dict.update({key:value})
例如:
a={"name":"资名扬","age":"19"}
a.update("age":19.0)
print(a)
a.update("Height":176.2)
print(a)
dict[key]=value
1.一样可以修改
2.如果字典中有相同的key的值,就会修改value值。
3.反之,如果没有相同的key值,就会增加key:value键值对。
又例如:
a={"name":'梓良老师',"age":'26'}
a=["age"]=26.0
print(a)
a["height"]='180.01'
print(a)
———————————————————————————————————————————
注意:如果原字典有key值和value值,那用default相同的key值,是不能修改key值和value值。
定义:输入key值如果没有进行添加value,如果没有进行定义value,则默认值为空值None。如果存在键值对,不会报错,也不会添加。
---------------------------------------------------------------------------------------------------------------------------------
4.输入默认值.
dict.setdefault( )
格式:dict.setdefault(key,default=None)——>None是空值的意思。
例子:
a={"1":1,"2":2,"3",3}
a.setdefault("3",0)
a.setdefault("4")
a.setdefault("5",1)
print(a)
5.删除:
pop( )
格式:dict.pop(key)
根据字典中key值进行删除相对于的value值。
例如:
a={"1":1,"2":2}
a.pop("1")
print(a)
popitem( )——>删除字典最后一个键值对。(随机)
格式:dict.popitem( )
例如:
a={"1":1,"2":2}
a.popitem( )
print(a)
del
格式: del dict
del dict[key]
前者是完全删除字典,后者是删除单个键值对。(根据key值去删除。)
a={"1":1,"2",2}
del a["1"]
print(a)
a={"1":1,"2",2}
del a["1"]
print(a)
del a
print(a)
clear( )
格式:
dict.clear( )——>清空键值对.
a={"1":1,"2":2}
a.clear( )
print(a)
6.查询:
格式:dict[key] 用key查value值。print("xxx" in dict.keys( ))
a={"1":1,"2":2}
print(a["1"])
字典常用方法
item( )获得.
定义:获得字典key值和value值,以元组形式放在列表形式展示。
格式:dict.items( )
例如:a={"1":1,"2":2}
print(type(a))
values( ):获得字典所有的value值,返回的一个数值以list形式展示。
keys( ):获得所有的key值,返回的一个数值以list形式展示。
格式:
dict.values( ) dict.keys( )
a={"1":1,"2":2}
print(a.values( ))
print(type(a.values( )))
print(type(a.keys()))
底下输出的内容是内存地址
formkeys( )
定义:用于创建变量和批量创建数值的字典方法,而是以key值为键值,value为数值,如果没有输入value值,默认None为空值。
格式:fromkeys(key,value=None)
a={ }
b=("1","2","3")
a=a.fromkeys(b)
print(a)
a.clear( )
a=a.formkeys(b,100)
print(a)
7.集合(set)
定义:集合是没有key值,也没有index值,是没有办法查询里面的数值的,而且数值只能是:数字、字符串、元组、bool类型,不能修改数值。——>说明数值是唯一的。
通常用来查重的。(两个集合进行查重).比较数值作用。
格式:set:{1,2,3,4}
a={1,2,4,5}
print(a)
print(type(a))
常用方法:添加:add( )
a={1,2,3,4}
a.add(5)
print(a)
但是:
a={1,2,3,4}
a.add(5)
print(a)
a.add(5)
print(a)
这说明:集合是不能重复添加的,数值是唯一的。
删除:remove( ),discard( )
格式:set.remove( ) discard( )
需要注意的是:remove如果数值不存在,会报错。
discard如果数值不存在,不会报错。
例子:a={1,2,3,4,5,6,7}
a.remove(3)
print(a)
a.discard(3)
print(a)
discard如果数值不存在,不会报错。
那么:
remove如果数值不存在,会报错。
集合并集、交集、差集:里面的数值是唯一的,如果有重复的会自动删除,可以利用这个特性进行去重作用。
运算操作: 描述:
& 交集 获取两个集合相同的数值
| 并集 获取两个集合全部的数值
- 差集 获取左边集合中,右边没有的数值
A={1,2,3}
B={3,4,5}
A&B={3}——>C
A|B={1,2,3,4,5}
A-B={1,2}