4.字典与集合的用法

1.字典

典型的字典定义方式:

a = {'name':'gaoqi', 'age':18, 'job':'programmer'}

1.1字典的创建

​ 1. 通过{}、dict{}来创建字典对象

>>>a = {'name':'gaoqi', 'age':18, 'job':'programmer'}
>>>b = dict{'name':'gaoqi', 'age':18, 'job':'programmer'}
  1. 通过zip()创建字典

    k = ['name','age','job']
    v = ['gaoqi',18,'teacher']
    d = dict(zip(k,v))
    

3.通过fromkeys创建值为空的字典

a = dict.fromkeys(['name','age','job'])

1.2字典元素的访问

为了测试各种访问方法,这里设定一个字典对象

a = {'name':'gaoqi','age':18,'job':'programmer'}

​ 1.通过键获得值。若键不存在,则异常。

>>>a = {'name':'gaoqi','age':18,'job':'programmer'}
>>>a['name']
'gaoqi'
>>>a["sex"]
报错

​ 2.通过get()方法获得值。优点是:指定键不存在,返回None;也可以设定指定键不存在时默认返回的对象。

>>>a.get('name')
'gaoqi'
>>>a.get('sex')
>>>a.get('sex','男')
'男'

​ 3.列出所有的键值对

>>>a.items()
dict_item([('name','gaoqi'),('age',18),('job','programmer')])

>>>a.keys()
dict_keys(['name','age','job'])

>>>a.values()
dict_values(['gaoqi',18,'programmer'])
  1. len()键值对的个数

  2. 检测一个“键”是否在字典中

    >>>a = {'name':'gaoqi','age':18}
    >>>'name' in a
    True
    

1.3 字典元素的添加,修改,删除

​ 1.给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”

>>>a = {'name':'gaoqi','age':18,'job':'programmer'}
>>>a['address']='西三旗1号院'
>>>a['age']=16
>>>a
{'name':'gaoqi','age':16,'job':'programmer','address':'西三旗1号院'}

​ 2.使用update()将新字典中所有键值对全部添加到旧字典对象。如果key有重复,则直接覆盖。

>>>a = {'name':'gaoqi','age':18,'job':'programmer'}
>>>b = {'name':'gaoxixi','money':1000,'sex':'nan'}
>>>a.update(b)
>>>a
{'name':'gaoxixi','age':18,'job':'programmer','money':1000,'sex':'nan'}

​ 3.字典元素的删除,可以用del()方法;或者clear()清除所有键值对;pop()删除指定键值对,并返回对象的值对象

>>>a = {'name':'gaoqi','age':18,'job':'programmer'}
>>>del(a['name'])
>>>a
{'age':18,'job':'programmer'}
>>>b = a.pop('age')
>>>b
18

​ 4.popitem():随机删除和返回该键值对。字典没有第一个元素和最后一个元素的概念。popitem弹出随机项。因为字典并没有“最后的元素”或者其他和顺序有关的概念。若想一个接一个的移除并处理项,这个方法就很有效。

>>>a = {'name':'gaoqi','age':18,'job':'programmer'}
>>>a.popitem()
('job','programmer')
>>>a
{'name':'gaoqi','age':18}
>>>a.popitem()
('age',18)
>>>a
{'name':"gaoqi"}

1.4字典的序列解包

序列解包用于元组,列表,字典。序列解包可以让我们方便的对多个变量赋值。

>>>x,y,z = (20,30,10)
>>>x
20
>>>y
30
>>>z
10
>>>(a,b,c) = (9,8,10)
>>>a
9
>>>b
8
>>>c
10
>>>[a,b,c] = [10,20,30]
>>>a
10
>>>b
20
>>>c
30

当序列解包用于字典时,默认是对“键”进行操作。如果需要对键值进行操作,则需要使用items();如果需要对值进行操作,则需要使用values()

>>>s = {'name':'gaoqi','age':18,'job':'programmer'}
>>>name,age,job = s			#默认对键操作
>>>name
'name'
>>>name,age,job = s.items()	#对键值进行操作
>>>name
('name',"gaoqi")
>>>name,age,job = s.values() #对值进行操作
>>>name
'gaoqi'

2.集合

2.1集合的特点

​ 集合是无序可变的,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的键对象,因此是不能重复且唯一的。

2.2集合的创建和删除

​ 1.使用{}创建集合对象,并使用add()方法添加元素

>>>a = {3,5,7}
>>>a
{3,5,7}
>>>a.add(9)
>>>a
{9,3,5,7}

​ 2.使用set(),将列表,元组等可迭代对象转化为集合,如果原来数据中存在重复数据,则只保留一个。

>>>a = ['a','b','c','d']
>>>b = set(a)
>>>b
{'b','a','c'}

​ 3.remove()删除指定元素;clear()清空整个集合

>>>a = {10,20,30,40,50}
>>>a.remove(20)
>>>a
{10,30,40,50}

2.3集合的相关操作

集合的并集,交集,差集等运算

>>>a = {1,3,'sxt'}
>>>b = {'he','it','sxt'}
>>>a|b			#并集
>>>a&b			#交集
>>>a-b			#差集
>>>a.union(b)	#并集
>>>a,intersection(b)	#交集
>>>a.difference(b)		#差集
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值