Python入门笔记——字典和集合

一.字典

字典使用键-值(key-value)存储,具有极快的查找速度
字典本身是无无序的
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }

>>> dict = {'google':1,'taobao':2,'baidu':3}

键必须是唯一的,是不可改变的,如字符串,数字或元组,这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了
值是可以改变的,可以取任何数据类型

二.字典基础操作

字典的访问

把相应的键放入到方括号中,比如dict[key]

>>> dict = {'google':1,'taobao':2,'baidu':3}
>>> dict['google']
1

注意:访问时不要写成(),否者会出错

>>> dict('google')
Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    dict('google')
TypeError: 'dict' object is not callable

但是如果你取的值不存在,就会发生异常,风险很大

>>> dict['JD'] #取不到的Key值
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    dict['JD']
KeyError: 'JD' #异常错误

有没有什么两全的办法有值的时候取值,没有值的时候即使我取不到也不会发生异常
答案是有的,python早就给你准备好了.我们用dict.get()

>>> print(dict.get('JD'))#当取不到值的时候会返回None,而不是异常
None   #建议:尽量用dict.get()来代替dict[key]

修改字典

>>> dict = {'google':1,'taobao':2,'baidu':3}
>>>> dict['google'] = 9
>>> dict
{'google': 9, 'taobao': 2, 'baidu': 3}

删除字典元素

>>> del dict['google'] #删除单一元素
>>> dict
{'taobao': 2, 'baidu': 3} 
>>> dict.clear() #清空字典

三.集合

集合类型与数学中的集合概念一致
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
建立集合类型用 {} 或 set()
建立空集合类型,必须使用set()
set()只能创建空对象或者可迭代对象

>>> b = set('pypy123')
>>> b
{'p', 'y', '1', '2', '3'} #集合自动进行去重

集合的基础操作

在这里插入图片描述

>>> A = {'p','y',123}
>>> B = set('pypy123')
>>> A - B
{123}
>>> A & B
{'p', 'y'}
>>> A ^ B
{123, '1', '2', '3'}
>>> A | B
{'p', 'y', '1', 123, '2', '3'}

添加元素

>>> A = {'p','y',123}
>>> A.add('Facebook') #将元素添加到集合 s 中,如果元素已存在,则不进行任何操作
>>> A
{'Facebook', 'p', 123, 'y'}
>>> A = {'facebook','taobao','JD'}
>>> A.update({'baidu'})
>>> A
{'JD', 'taobao', 'baidu', 'facebook'}

移除元素

>>> A.remove('taobao') #如果元素不存在就会发生错误
>>> A
{'JD', 'baidu', 'facebook'}
>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook") #用discard删除即使没有元素也不会发生错误
>>> thisset
{'Runoob', 'Google', 'Taobao'}

清空集合

>>> thisset.clear()
>>> thisset
set() #空集合用set()表示
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值