Python 字典的介绍与应用

一,什么是字典:所有数据都是成对出现 用大括号进行包裹

         {

             '姓名':'哈哈','性别':'女'

              '绩效平级':'A','岗位':'销售'

           }

  特点:

      a,字典采用 键(key):值(value) 形式表达数据

      b,字典中key不允许出现重复,value允许重复

      c,是可修改的,运行时动态调整存储空间

 二,如果创建字典

       使用{}来创建字典               

       使用dict函数创建字典

       示例:

#使用{}创建
dict1 = {} #创建空的字典
print(type(dict1))

dict2 = {'name':'小王',
         'age':'18',
         'sex':'男',
         'job':'销售'
         }
print(dict2)

#使用dict函数创建字典
dict3 = dict(name='小王',age='18',sex='男',job='销售')
print(dict3)

#利用一个序列创建一个key
dict4 = dict.fromkeys(['name','age','sex','job'],'N')
print(dict4)

    三,字典的取值操作:

#字典的取值操作
dict = {'name':'小王',
         'age':'18',
         'sex':'男',
         'job':'销售'
         }

name = dict['name']
print(name) #返回 小王

# get()函数
age = dict.get('age')
print(age)
print(dict.get('dd')) #返回None Key值不存在
print(dict.get('dd','其他部门')) #可为不存在的key 赋予默认值

# in 成员运算符
print('name' not in dict) #字典里是否存在 name

      遍历字典:

#遍历字典
#方法一:
for key in dict:
    v = dict[key]
    print(v)

#方法二:
for key,val in dict.items():#返回字典中每一个键值对
      print(key,val)

 四,字典的更新和删除操作:

    建议在编辑器里运行后查看输出结果


dict = {'name':'小王',
         'age':'18',
         'sex':'男',
         'job':'销售'
         }

print(dict)
dict['age'] = '25' #对单个key value 进行更新
print(dict)
#update() 一次对多个key value 进行更新
dict.update(age = '69',job = '运营')
print(dict)

#字典的更新操作和 新增操作相同(有则更新 无则新增)
dict.update(grade = 'A++')
print(dict)

#字典的删除操作
#pop()删除指定的kv 日常开发中常用操作
dict.pop('sex')
print(dict)

# popitem() 删除最后一个kv
k = dict.popitem()
print(k)
print(dict)

#clear() 清空字典 清除所有的数据
dict.clear()
print(dict)

五,字典的常用操作:

    1,为字典设置默认值

           利用 setdefault() 为字典设置默认值,如果某个key已经存在则忽略,不存在则设置默认值

emp1 = {'name':'jack','grade':'B'}
emp2 = {'name':'lily'}
emp2.setdefault('grade','C')
print(emp2)

 运行结果:

  

  2,获取字典的视图:

     a,keys()代表获取所有的键

     b,values()代表获获取所有的值

     c,items()代表获取所有的键值对

k = emp1.keys()
print(k)
v = emp1.values()
print(v)

its = emp1.items()
print(its)

 运行结果:

 

3,字符串格式化的使用技巧:

emp_str = "姓名:%(name)s,评级:%(grade)s" %emp1 #将emp1字典中的数据自动带入 emp_str中
print(emp_str)

#Python3中提供的新的书写方式
emp_str1 = "姓名:{name},评级:{grade}".format_map(emp1)
print(emp_str1)

运行结果:

 

示例:已知 字典 dict0 = {'name':'小王','age':'18','sex':'女','dept':'技术部'}

  循环输出打印结果为:

      

     代码:

dict01 = {'name':'小王','age':'18','sex':'女','dept':'技术部'}
for key,val in dict01.items():
     print("{}:{}".format(key,val))

 六,散列值(Hash)与字典的存储原理

       字典也称之为 “哈希(Hash)” ,对应 “散列值”

       散列值是从任何一种数据中创建数字“指纹”

        #生成某一个数据的散列值

           #对于相同的数据 无论生成多少次 hash值 都是相同的

            #对于正数的hash值就是它自己

       

#生成某一个数据的散列值
 #对于相同的数据 无论生成多少次 hash值 都是相同的
  #对于正数的hash值就是它自己
a = hash('dcb')
print(a)

b = hash('abc') #与 dcb 生成的hash值完全不同
print(b)

c = hash(123456) #对于正数的hash值就是它自己
print(c)

     字典的存储原理

         将所有的key 进行转换成对应的散列值(hash) 根据散列值 会在内存中开辟一段空间,(会预留下多个空闲的空间),将hash值经过换算后 找到相应的内存地址,将数据保存在对应的内存地址中;

       数据在内存中是分散的存储,根据hash的散列值来进行

       数据在内存中储存 并不是按照key的顺序排列的

       对于字典的数据提取速度是极快的,(每一个key在内存中保存具体的散列值,而这个散列值都对应唯一的内存地址)提取数据时效率比存在列表高很多,结构化数据建议将字典作为优先的存储结果使用

 如下图:

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值