字典
1.字典的创建
-
字典
-
Python内置的数据结构之一,与列表一样是一个可变序列
-
以键值对(key-value)的方式存储数据,字典是一个无序的序列
(图片转载网络)
-
-
实现原理
字典的实现原理与查字典类似,查字典是先根据部首或拼音查找相对应的页码,Python中的字典是根据key查找value所在的位置
字典的创建有两种方式
1.使用花括号{}
scores={'张三':100,'李四':98,'王五':45}
print(scores)
print(type(scores))
输出:
{‘张三’:100,‘李四’:98,‘王五’:45}
<class ‘dict’>
2.使用内置函数dict( )
student=dict(name='jack',age=20)
print(student)
输出:
{‘name’:‘jack’,‘age’:20}
2.字典中元素的获取
- 字典中的元素的获取
- 1.[ ]
- 2.get( )
scores={'张三':100,'李四':98,'王五':45}
print(scores['张三'])
输出:100
scores={'张三':100,'李四':98,'王五':45}
print(scores.get('张三'))
输出:100
3.字典元素的增,删,改操作
a.增加
scores={'张三':100,'李四':98,'王五':45}
scores['陈六']=99
print(scores)
输出:
{‘张三’:100,‘李四’:98,‘王五’:45,‘陈六’:99}
b.删除
scores={'张三':100,'李四':98,'王五':45}
del scores['张三'] #del删除指定的key-value
print(scores)
输出:
{李四’:98,‘王五’:45}
scores={'张三':100,'李四':98,'王五':45}
scores.clear() #clear表示清空字典中的元素
输出:
{ }
4.获取字典视图
(图片转载网络)
a.获取所有的key
scores={'张三':100,'李四':98,'王五':45}
a=scores.keys()
print(list(a))
输出:
[‘张三’,‘李四’,‘王五’]
b.获取所有的value
scores={'张三':100,'李四':98,'王五':45}
a=scores.values()
print(list(a))
输出:
[100,98,45]
c.获取所有的key-value对
scores={'张三':100,'李四':98,'王五':45}
a=scores.items()
print(list(a))
输出:
[(‘张三’,100),(‘李四’,98),(‘王五’,45)]
5.字典的特点
- 字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
d={'name':'张三','name':'李四'}
print(d)
输出:
{‘name’:‘李四’}
key重复会出现值覆盖。
- 字典中的元素是无序的
- 字典中的key必须是不可变对象
- 字典也可以根据需要动态地伸缩
- 会占用较大的内存空间
6.字典生成式
(图片转载网络)
-
内置函数zip( )
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表
items=['Fruits','Books','Others']
prices=[96,78,85]
d={item:price for item,price in zip(items,prices)}
print(d)
输出:
迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表
items=['Fruits','Books','Others']
prices=[96,78,85]
d={item:price for item,price in zip(items,prices)}
print(d)
输出:
{‘Fruits’: 96, ‘Books’: 78, ‘Others’: 85}