• 字典 dict

    什么是字典:
        1.字典是一种可变的容器,可以存储任意类型的数据
        2.字典中的每个数据都是用"键"(key)进行索引的,而不是序列可以用索引下标进行索引
        3.字典中的数据没有先后顺序关系,字典的存储是无序的
        4.字典的数据以键-值对(key-value)的形式进行映射存储
        5.字典的键不能重复,且只能用不可变类型作为字典的键

    字典的字面值表示方法:
        以{}括起来,以冒号(:)分隔键-值对,各键值对用逗号分隔开
    创建空字典:
       

d = {}  #{} 表达式用来创建一个空的字典

    创建非空字典:
       

d = {'name':"wangyangming",'age':25}
d = {'a':100}
d = {'a':tuple("abc")}
d = {'abc':list('ac')}
d = {'a':{'b':100,'c':200}}
d = {True:'真值',False:'假值',None:'空',100:'一百'}
d =  {(1970,1,1):"计算机元年"}

    字典的构造函数 dict
        dict() 创建一个空的字典,等同于{}
        dict(interable)  用可迭代对象创建一个新的字典
        dict(**kwargs)   用关键字传参形式创建一个新的字典
    示例:

d = dict()
d = dict([('name','tarena'),('age',15)]
d = dict((['name','wbq'],'ab'))
d = dict(name= 'tarena',age =15)

    字典的基本操作
        字典的键索引
            用[]运算符可以获取字典内'键'对应的'值'
        语法:
            v = 字典[键]
        示例:
           

d = {'name':'tarena','age':20}

print(d['name'],'今年',d['age'],'岁') #tarena 今年 20 岁

    添加和修改字典的元素
        字典[键] = 表达式
        示例:          

d = {}
d['name'] = 'tarena' #创建新的键'name'同时关联值
d['age'] = 15 #创建键并绑定15
d['age'] = 16 #修改原来的键'age',重新绑定为16
print(d)      #{'name': 'tarena', 'age': 16}绑定为16

        说明:
            键不存在,创建键,并绑定值
            键存在,修改键的绑定关系
    删除字典元素 del
        del 字典[键]
        示例:

d = {1:"-",'hello':world,True:'真值'}                                               
  del d['hello']

    字典的in / not in 运算符
        in /not in 
        in 用来判断一个键是否存在于字典中,如果存在返回True,否则返回False
        not in 的返回结果与in相反

    示例:

d = {'name':'小张','age':20}
        'name' in d # True
        'age' not in d #False
        '小张' in d #False     只判断键不判断值   
        20 not in d #True

 

    字典的迭代访问
        字典是可迭代对象,字典只能对'键'进行访问
        示例
   

d = {'aaa':111,'bbb':222,'ccc':333}
for k in d:
    print(k)  #aaa
              #bbb
              #ccc

    可以用于字典的函数:
        len(x)    返回字典的键值对个数
        man(x) 返回字典的最大值
        min(x)  返回字典的最小值
        sum(x) 返回字典的所有键的和
        any(x)   真值测试,只对键进行测试
        all(x)     真值测试,全部键为真值,结果才为True
    示例:

d = {0:'零',5:'五',8:'八',3:'三'}
  len(d)  # 4
  max(d)  # 8
  min(d)  # 0 
  sum(d)  #16
  any(d)  # True
  all(d)  # False

    字典的方法:
        方法名                             说明
        d.clear()                                                  清空字典
        d.pop(key)                                              移除键,同时返回此键对应的值
        d.copy()                              移除字典d的副本(浅拷贝)
        d.updata(d2)                                           将字典d2合并到d中,如果键相同,则此键的值取d2的值为新值
        d.get(key,default)                                    返回键key所对应的值,如果没有此键,则返回default的值
        d.keys()                               移除字典d的副本(浅拷贝)返回可迭代的dict_keys集合对象
        d.values()                            移除字典d的副本(浅拷贝)返回可迭代的dice_value集合对象
        d.items()                                                   返回可迭代的dict_item对象
        示例:
           

d = {1:'one',2:'two'}
d2 = {2:'二',3:'三'}
d3 = d.copy()
d3.pop(1)  # d3 = {2:'two'}
d.updata(d2)  #{1:'one',2:'二',3:'三'}
for k in d.keys():
    print(k)        #1,2,3
for v in d.values():
    print(v)        #"one" "二" "三"
for t in d.items():
    print(t) #(1,'one')(2,'二')(3,'三')
for k,v in d.items():  #在地点中可以加多个变量
    print("键",k,"对应的值是",v)

    字典推导式:
        是用可迭代对象生成字典的表达式
        语法:
            {键表达式:值表达式 for 变量 in 可迭代对象[if 真值表达式]}
            注:[]表示其中的内容可以省略
        示例:
            生成一个字典,键位数字1-9,值为键的平方
            d = {x:x**2 for x in range(1,10)}
    字典推导式的嵌套等同于列表推导式的嵌套:
    字典vs 列表
        1.都是可变对象
        2.索引方式,列表用整数索引,字典用键索引
        3.字典的插入,删除,修改的速度可能会快于列表(重要)
        4.列表的存储是有序的,字典的存储是无序的