Python之字典

1.字典的定义

  • python内置的数据结构之一,与列表一样是一个可变序列(数据结构可以实现增删改的变化)。
  • 字典是一个无序的数据集合,使用print输出字典时,通常输出的顺序和定义的顺序不一致。
  • 字典以键值对的方式存储数据,字典是一个无序的序列,而列表是一个有序序列。
    列表: 单身贵族
    字典: 二人世界(冒号之前为键,后为值。)

定义方法:
在这里插入图片描述
排序方法:无序
在这里插入图片描述

2、字典的实现原理

python中利用hash 函数对key查找value所在位置。

3、字典的创建

(1)使用花括号创建
字典名={ ’key1’:value1,‘key2’:value2}

dic1 = {'name':'kongying','age':18,'grade':23}
print(type(dic1))

运行结果:
在这里插入图片描述

####空字典的创建
dic1 = {}
print(dic1)
print(type(dic1))

运行结果:
在这里插入图片描述
(2)使用内置函数dict

source = dict(name='kongying',age=18,grade='65')
print(source,type(source))

运行结果:
在这里插入图片描述

4、字典元素的增删改查

(1)利用key值查找

source = dict(name='kongying',age=18,grade='65')
print(source['name'])

运行结果:
在这里插入图片描述
(2)利用get查找

source = dict(name='kongying',age=18,grade='65')
print(source.get('grade'))

运行结果:
在这里插入图片描述
两者区别:
若一个键不存在,第一个获取值的方法会报错,而第二个会显示None:
在这里插入图片描述

source = dict(name='kongying',age=18,grade='65')
print(source.get('grade'))
print(source.get('class'))

运行结果:
在这里插入图片描述

source = dict(name='kongying',age=18,grade='65')
print(source.get('grade'))
print(source['class'])

运行结果:
在这里插入图片描述
(3)利用in、not in判断key是否存在

source = dict(name='kongying',age=18,grade='65')
print('name' not in source)

运行结果:
在这里插入图片描述
(4)删除指定的键值对:del

source = dict(name='kongying',age=18,grade='65')
del source['grade']
print(source)

运行结果:
在这里插入图片描述
(5)清空字典的键值对:clear

source = dict(name='kongying',age=18,grade='65')
source.clear()
print(source)

运行结果:
在这里插入图片描述
(6)字典键值对的新增、修改

###新增
source = dict(name='kongying',age=18,grade='65')
source['class']='guangdian'
print(source)

运行结果:
在这里插入图片描述

##修改
source = dict(name='kongying',age=18,grade='65')
source['grade']=99
print(source)

运行结果:
在这里插入图片描述
(7)获取字典视图(其实都是一组组的元组)

  • 获取字典的所有键:keys
source = dict(name='kongying',age=18,grade='65')
a = source.keys()
print(a,type(a))

运行结果:
在这里插入图片描述

  • 获取字典的所有:values
source = dict(name='kongying',age=18,grade='65')
a = source.values()
print(a,type(a))

运行结果:
在这里插入图片描述

  • 获取字典的所有对:items
source = dict(name='kongying',age=18,grade='65')
a = source.items()
print(a,type(a))

运行结果:
在这里插入图片描述
(8)字典元素(key-value对)的遍历

  • 字典key的遍历
sources = {'name':'kongying','gae':'18','grade':99}
for item in sources:
    print(item)

运行结果:
在这里插入图片描述

  • 字典value的遍历
    第一种方法:
###3利用键值对之间的一一对应关系遍历
sources = {'name':'kongying','gae':'18','grade':99}
for item in sources:
    print(sources[item])

运行结果:
在这里插入图片描述
第二种方法:

##利用get 函数获取
sources = {'name':'kongying','gae':'18','grade':99}
for item in sources:
    print(sources.get(item))

运行结果:在这里插入图片描述

5、字典的特点

在这里插入图片描述

  • 因为字典中的元素是无序的,所以没有办法进行指定位置的增加。
  • 可以增删改除的数据结构即为可变序列,所以不需要给它定义静态存储位置大小。

6、字典生成式:内置函数zip()

在这里插入图片描述
(1)可迭代对象:可使用for in循环遍历的对象即为可迭代对象。
(2)利用内置函数生成字典:

name = ['liming','jerry','alica','apache']
age = [13,15,78,13]
a = {key:value  for key,value in zip(name,age)}
print(a)

运行结果:
在这里插入图片描述
当两个定义的列表元素不相同的时候,根据元素最少的列表来生成字典:

name = ['liming','jerry','alica','apache','fjs','hhy']
age = [13,15,78,13]
a = {key:value  for key,value in zip(name,age)}
print(a)

运行结果:
在这里插入图片描述
实操:.将两个列表转换为一个字典类型

第一种:

users = ['user1', 'user2']
passwd = ['123', '456']
a = {userx:passwdx for userx,passwdx in zip(users,passwd)}
print(a)

第二种:

users = ['user1', 'user2']
passwd = ['123', '456']
print(dict(zip(users,passwd)))  ##zip表示重组,将原来数据类型打破,然后再强制更改为字典类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值