python全栈学习记录(八)字典、集合

字典、集合

一、字典

用途:用来存多个值,但每一个值都有一个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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值