目录

  • 一.字典
  • 二.字典基础操作
  • 字典的访问
  • 修改字典
  • 删除字典元素
  • 三.集合
  • 集合的基础操作
  • 添加元素
  • 移除元素
  • 清空集合


一.字典

字典使用键-值(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'} #集合自动进行去重

集合的基础操作

用python在字典中求平均分_用python在字典中求平均分

>>> 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()表示