Python中的字典

字典

1. 什么是字典

字典

  1. Python内置的数据结构之一,与列表一样是一个可变序列
  2. 以键值对的方式存储数据,字典是一个无序的序列
    scores={‘张三’:100,‘李四’:98,‘王五’:45}

字典示意图
在这里插入图片描述
字典的实现原理
    字典的实现原理与查字典类似,查字典是先根据部首或拼音查找汉字对应的页码,Python中的字典是根据key查找value所在的位置。

字典的特点

  1. 字典中的所有元素都是一个key-value对,key不允许重复,value可以重复。
  2. 字典中的元素是无序的
  3. 字典中的key必须是不可变对象
  4. 字典可以根据需要动态地伸缩
  5. 字典会浪费较大的内存,是一种使用空间换时间的数据结构
d={'name':'张三','nikename':'张三'}
print(d)

2. 字典的原理

   字典的实现原理与查字典类似,查字典是先根据部首或拼音查找相应的页码,Python中的子弟爱你是根据key查找value所在的位置。

3. 字典的创建与删除

3.1 字典的创建

  1. 最常用的方式:实用花括号
    scores={‘张三’:100,‘李四’:98,‘王五’:45}
  2. 使用内置函数dict()
    dict(name=‘jack’,age=20)
'''字典的创建方式'''

'''第一种创建方式 使用{}创建字典'''
scores={'张三':100,'李四':95,'王五':56}
print(scores)
print(type(scores))

'''第二种创建方式 使用dict()'''
scores=dict(name='jack',age=20)
print(scores)
print(type(scores))

'''空字典'''
d={}
print(d)

4. 字典的常用操作

4.1 字典中元素的获取

方法:

  1. [ ] 举例:scores=[‘张三’]
  2. get() 举例:scores.get(‘张三’)

[ ] 取值与使用get()取值的区别:

  1. [ ] 如果字典中不存在指定的key,抛出KeyError异常。
  2. get()方法取值,如果字典中不存在指定的key,并不会抛出KeyError ,而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回。
# 获取字典的元素
'''第一种方法  [] '''
scores={'张三':100,'李四':95,'王五':56}
print(scores['张三'])
#print(scores['程六'])  # 会报错 KeyError

'''第二种方法 get() '''
print(scores.get('李四'))
print(scores.get('程六'))  # 不会报错 None
# 如果查找的key所对应的value不存在输出99
print(scores.get('麻七',99))

4.2 key的判断

  1. in 指定的key在字典中存在返回True, ‘张三’ in scores
  2. not in 指定的key在字典中不存在返回True, ‘Marry’ not in scores
'''key的判断'''
print('张三' in scores)

4.3 获取字典视图的三个方法

  1. keys() 获取字典中所有key
  2. values() 获取字典中所有value
  3. items() 获取字典中所有key,value对
# keys()   获取字典中所有key
keys=scores.keys()
print(keys)
print(type(keys))
print(list(keys))  # 将所有的key组成的视图转成列表

# values()  获取字典中所有value
values=scores.values()
print(values)
print(type(values))
print(list(values))

# items()   获取字典中所有key,value对
items=scores.items()
print(items)
print(type(items))
print(list(items)) #转换之后的列表元素是由元组组成(元组将在下个章节讲解)

4.4 字典元素的遍历

for item in scores:
print(item)

for item in scores:
    print(item,scores[item],scores.get(item))```

5 字典元素的增、删、改操作

5.1 字典元素的新增

scores[‘程六’]=96

'''新增键值对'''
scores['程六']=96
scores['张三']=95
scores['王五']=89
print(scores)

5.2 字典元素的删除

del scores[‘张三’]

'''删除指定的键值对'''
del scores['张三']
print(scores)
'''清空字典'''
scores.clear()
print(scores)

5.3 字典元素的修改

scores[‘程六’]=97

'''修改键值对'''
scores['程六']=97
print(scores)

6. 字典推导式

内置函数zip()

   用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回这些元组组成的列表。

items=[‘Fruits’,‘Books’,‘Others’]
prices=[96,78,95]
lst=zip(items,prices)
print(list(lst))

字典生成式

{item.upper(): price for item,price in zip(items,prices)}

'''字典生成式'''
items=['Fruits','Books','Others']
prices=[96,78,95]
lst=zip(items,prices)
print(list(lst))

d={item.upper(): price for item,price in zip(items,prices)}
print(d)
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团子加油敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值