04python基础 字典

本文详细介绍了Python字典的基本概念、创建方式、常用操作,包括键值对的获取、删除、新增、修改,以及字典视图的获取。此外,还探讨了字典的特点,如无序性、key的唯一性,并展示了字典生成式的使用。通过实例代码,帮助读者深入理解字典在实际编程中的运用。
摘要由CSDN通过智能技术生成

1. 字典

  • Python内置的数据结构之一,与列表一样是一个可变序列

  • 以键值对的方式存储数据,字典是一个无序序列

  • 示意图

在这里插入图片描述

  • 实现原理:根据key查找到value所在的位置

1.1 字典的创建

  • 最常用的方式:使用花括号
  • 使用内置函数dict()
# 1.
scores = {'张三':100,'李四':98,'王五':45}
print(scores) #{'张三':100,'李四':98,'王五':45}
# 2.
student = dict(name='jack',age = 20)
print(student) #{'name':'jack','age':20}
# 空字典
d = {}

1.2 字典的常用操作

1.2.1字典的获取
  • [ ] -> scores[‘张三’]
  • get()方法 -> scores.get(‘张三’)
scores = {'张三':100,'李四':98,'王五':45}

print(scores['张三'])     #100
print(scores.get('张三')) #100

#区别:获取不存在的值,第一种报错KeyValue,第二种得到None
print(scores['赵六'])     #KeyValue
print(scores.get('赵六')) #None

#查找不存在的值
print(scores.get('马七'),99) # 99 
# 99是在查找‘马七’所对应的value不存在时,提供的一个默认值
1.2.2 key的判断
  • in / not in
scores = {'张三':100,'李四':98,'王五':45}
print('张三' in scores) #True
print('张三' not in scores) #False
1.2.3 字典的删除
scores = {'张三':100,'李四':98,'王五':45}
del scores['张三']
print(scores)  #{'李四':98,'王五':45}
scores.clear()
print(scores)  #{}
1.2.4 字典的新增
scores = {'张三':100,'李四':98,'王五':45}
scores['陈六'] = 98;
print(scores) # {'张三':100,'李四':98,'王五':45,'陈六':98}
1.2.5 字典的修改
scores = {'张三':100,'李四':98,'王五':45}
scores['张三'] = 60
print(scores) #{'张三':60,'李四':98,'王五':45}
1.2.6 获取字典视图
  • keys() 获取key
  • values() 获取value
  • items() 获取key,value
scores = {'张三':100,'李四':98,'王五':45}

keys = scores.keys()
print(keys) # dict_keys(['张三','李四','王五'])
print(list(keys)) # ['张三','李四','王五']  key视图转正列表

values = scores.values()
print(values) #dict_values([100,98,45])
print(list(valurs)) #[100,98,45]

items = scores.items()
print(items) #dict_items([('张三':100),('李四':98),('王五':45)])  
print(list(items)) #元祖[('张三':100),('李四':98),('王五':45)]
1.2.7 字典元素遍历
scores = {'张三':100,'李四':98,'王五':45}
# 遍历
for item in scores:
    print(item)
'''
张三
李四
王五
'''
for item in scores:
    print(item,scores[item]) #或者print(item,scores.get(item))
'''
张三 100
李四 98
王五 45
'''

1.3 字典的特点

  • 字典中所有元素都是一个key-value对,key不能重复,value可以
  • 字典中的元素时无序的
  • 字典中的key必须是不可变对象
  • 字典也可以根据需要动态地伸缩
  • 字典会浪费较大内存,是一种空间换时间的数据结构
n = {'name':zs,'name':ls}
print(n) # {'name':ls} key不能重复

1.4 字典生成式

  • 内置函数zip()
    • 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元祖组成的列表
items = ['fruits','books','others']
prices=[97,98,99]
#zip
d = {item:price  for item,price in zip(items,prices)}
peint(d)  # {'fruits':97,'books':98,'others':99}

#upper转大写
d = {item.upper():price  for item,price in zip(items,prices)}
peint(d)  # {'FRUITS':97,'BOOKS':98,'OTHERS':99}

#元素个数不一样
items = ['fruits','books','others']
prices=[97,98,99,100,101,102,103]
d = {item:price  for item,price in zip(items,prices)}
peint(d)  # {'fruits':97,'books':98,'others':99}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值