字典、集合
一、字典
用途:用来存多个值,但每一个值都有一个key与之对应,key对值有描述性的功能。
定义方式:
a={1:2}
a=dict(name=2,age=3)
#创建值为value的字典(默认值为None)
a={}.fromkeys(('name','age','gender'),1)
a
<<<{'name':1,'age':1,'gender':1}
注意点:
- 字典的键必须为不可变类型(hashable),也就是字典的键可以为数字类型,字符串,元组
a={1:2,'1':2,(1,):2}
a
<<<{1:2,'1':2,(1,):2}
a={[1]:2,{1:2}:2,{1,2}:2}
<<<"TypeError: unhashable type: 'list'"
1.dict的使用
a=[(1,2),(3,4),[5,6]]
dict(a)
<<<{1: 2, 3: 4, 5: 6}
2.字典取值与赋值
a={'name':'Tom','age':18,'gender':'male'}
a['name']
<<<'Tom'
a['name']='Jack'
a
<<<{'name':'Jack','age':18,'gender':'male'}
#对于原先不存在于字典中的键也可以赋值
a['borth']='1997-10-12'
a
<<<{'name':'Jack','age':18,'gender':'male','borth':'1997-10-12'}
3.遍历字典
#用for遍历字典只会取出键
a={'name':'Tom','age':18,'gender':'male'}
for i in a:
print(i)
<<<'name'
<<<'age'
<<<'geder'
#如果向遍历字典的值,右两种方法
for i in a:
print(a[i])
<<<'Tom'
<<<18
<<<'male'
for i in a.values():
print(i)
<<<'Tom'
<<<18
<<<'male'
4.字典的内置函数
update()函数可以将新字典中的键值对更新到原字典中,如果新字典中的键在原字典存在,则会覆盖原字典的值
a={1:2,3:4}
b={5:6,1:0}
a.update(b)
a
<<<{1: 0, 3: 4, 5: 6}
del函数可以删除字典的键值对(del函数并非字典独有)
a={1:2,3:4}
del a[1]
a
<<<{3: 4}
pop(key,default)函数可以删除字典的键值对,并返回键值对的值,如果指定的key不存在,则返回efault。
a={1:2,3:4}
b=a.pop(1)
a
b
<<<{3: 4}
<<2
a.pop(5,None)
<<<None
popitem函数用于删除字典最后一个键值对并返回这个键值对,如果字典为空会报错
a={1:2,3:4}
a.popitem()
a
<<<(3, 4)
<<<{1:2}
clear函数用于清空字典
a={1:2,3:4}
a.clear()
a
<<<{}
get(key,default)函数可以获取指定key的value,如果指定的可以不存在则返回default
a={1:2,3:4}
a.get(1)
<<<2
a.get(5,None)
<<<None
setdefault(key,default)函数可以获取指定key的value,如果可以不存在则会添加键值对key:default(default默认值为None)
a={1:2,3:4}
a.setdefault(1)
<<<2
a.setdefault(5,6)
a
<<<{1:2,3:4,5:6}
keys函数可以取出字典的键生成一个可迭代对象
values函数可以取出字典的值生成一个可迭代对象
items函数可以取出字典的键值对生成一个可迭代对象
a={1:2,3:4}
a.keys()
a.values()
a.items()
<<<dict_keys([1, 3])
<<<dict_values([2, 4])
<<<dict_items([(1, 2), (3, 4)])
二、集合
用途: 关系运算、去重
注意点:
- 集合内元素都必须是不可变(即可hash)类型
- 集合内的元素无序
- 集合内的元素不能重复
1.集合的创建,set的使用
a={1,2,3}
b=set([1,2,3])
注意点:
- {}表示空字典,set()表示空集合
集合可以用来去重,但是去重以后顺序会打乱
a=['a','b',1,'a','b']
b=set(a)
a=list(b)
a
<<<[1, 'b', 'a']
2.集合的关系运算
#并集
a={1,2,3}
b={3,4,5}
a|b
<<<{1, 2, 3, 4, 5}
#交集
a&b
<<<{3}
#差集
a-b
<<<{1, 2}
#补集(对称差集)
a^b
<<<{1, 2, 4, 5}
#父集与子集(包含关系)
a={1,2,3}
b={1,2}
a>b
<<<True
a={1,2,3}
b={1,5}
a>b
<<<False
3.集合的内置函数
add函数可以给集合添加元素
a={1,2}
a.add(3)
a
<<<{1,2,3}
pop函数可以取出集合中的某个元素并返回
a={1,2,3}
a.pop()
a
<<<1
<<<{2,3}
remove函数可以移除集合的指定元素,如果元素不存在会报错
discard函数可以移除集合的指定元素,如果元素不存在不会报错
a={1,2}
a.remove(3)
<<<"KeyError: 3"
a.discard(3)
a
<<<{1,2}
isdisjoint函数可以判断两集合是否有交集,有交集返回False
a={1,2}
b={2,3}
a.isdisjoint(b)
<<<False