一、python中的字典:
字典到底是什么呢:
字典:
1.以python内置的数据结构之一,
与列表一样是一个可变(增删改)序列
2. 以键值对的方式存储数据,
字典是一个无序(没有顺序排列)的序列
1.代码如下:
print('--------------------使用{}创建字典---------------------')
zidian1={'李明':100,'王五':40}
print(zidian1)
print('----------------使用dict创建字典---------------------')
dict_zidian=dict(name='jack',age=20)
print(dict_zidian)
print("----------------创建空字典----------")
zidian2={}
print(zidian2)
print('----------制用[]来获取元素----------------')
zidian3={'李明':100,'王五':40}
print(zidian3['王五'])
print('--------使用get()获取元素------------')
print(zidian3.get('李明'))
print(zidian3.get('小明',59))#59实在查找’小明‘所对应的value不存在时,提供的一个默认值
print('----------key的判断---------')
zidian4={'李明':100,'王五':40}
#在的话输出true,不在的话输出fales
print('张三' in zidian4)
print('张三' not in zidian4)
print('-------------字典元素的删除-------------')
zidian5={'李明':100,'王五':40,'小子':200}
print('删除之前为:',zidian5)
del zidian5['王五']
print('删除之后为:',zidian5)
print('--------字典元素的清空------------------')
print('清空之前:',zidian5)
zidian5.clear()
print('清空之后:',zidian5)
print('--------------字典元素的增添------------')
zidian6={'李明':100,'王五':40,'小子':200}
print('增添之前为:',zidian6)
zidian6['刚子']=555
print('增添之后为:',zidian6)
zidian6['刚子']=666
print('刚子修改后:',zidian6)
print('--------获取字典中所有的key--------------')
zidian7={'李明':100,'王五':40,'小子':200}
key1=zidian7.keys()
print(key1)
print('--------获取字典中所有的value---------------')
zidian7={'李明':100,'王五':40,'小子':200}
value1=zidian7.values()
print(value1)
print('----------获取字典中所有的key和value------------------')
zidian7={'李明':100,'王五':40,'小子':200}
item1=zidian7.items()
print(item1)
print('---------字典元素的遍历----------------')
zidian8={'李明':100,'王五':40,'小子':200}
for item2 in zidian8:
print('打印的key;',item2)
print("打印的values:",zidian8[item2],'or:',zidian8.get(item2))
print('-----------字典生成式--------------------')
item3s=['fritue','books','others']
prices=[33,44,55]
d={ item.upper():price for item,price in zip(item3s,prices)}
print(d)
2.运行结果:
示例:
--------------------使用{}创建字典---------------------
{'李明': 100, '王五': 40}
----------------使用dict创建字典---------------------
{'name': 'jack', 'age': 20}
----------------创建空字典----------
{}
----------制用[]来获取元素----------------
40
--------使用get()获取元素------------
100
59
----------key的判断---------
False
True
-------------字典元素的删除-------------
删除之前为: {'李明': 100, '王五': 40, '小子': 200}
删除之后为: {'李明': 100, '小子': 200}
--------字典元素的清空------------------
清空之前: {'李明': 100, '小子': 200}
清空之后: {}
--------------字典元素的增添------------
增添之前为: {'李明': 100, '王五': 40, '小子': 200}
增添之后为: {'李明': 100, '王五': 40, '小子': 200, '刚子': 555}
刚子修改后: {'李明': 100, '王五': 40, '小子': 200, '刚子': 666}
--------获取字典中所有的key--------------
dict_keys(['李明', '王五', '小子'])
--------获取字典中所有的value---------------
dict_values([100, 40, 200])
----------获取字典中所有的key和value------------------
dict_items([('李明', 100), ('王五', 40), ('小子', 200)])
---------字典元素的遍历----------------
打印的key; 李明
打印的values: 100 or: 100
打印的key; 王五
打印的values: 40 or: 40
打印的key; 小子
打印的values: 200 or: 200
-----------字典生成式--------------------
{'FRITUE': 33, 'BOOKS': 44, 'OTHERS': 55}
进程已结束,退出代码0
总结:
提示:这里对文章进行总结:
可变序列: (有序的序列)列表[] 字典{}
格式: scores={'张三':100,'李四':40,}
字典名 花括号 逗号 ‘键’:值
字典的实现原理:
字典的实现原理与查字典类似,查字典是先根据部首或者拼音查找相应的页码,
python中的字典是根据key查找value所在的位置
字典的创建:
1最常见的方式:使用花括号
scores = {‘张三’:100,‘李明’:20}
2使用内置函数dict()
dict( name = ’李明‘,age = 20)
字典元素的获取:
[] scores['张三']
get() scores.get('张三')
[]取值和使用get()取值的区别:
[]如果字典中不存在指定的key,抛出keyerror异常
get()方法取值,如果字典中不存在指定的key,并不会抛出keyerror而是返回None,
可以通过参数默认设置的value,以便于指定的key不存在时返回
key的判断:
in 指定的key在字典中存在返回true ’张三‘ in scores
not in 指定的key在字典中不存在返回true ’marry‘ not in scores
字典元素的删除:
del scores['张三']
字典元素的新增:
scores['qqq']=90
字典试图的获取:
key() 获取字典中所有的key
value() 获取字典中所有的value
items() 获取字典中所有的key,value对
字典的遍历:
for item in scores:
print(item)
字典的特点:
字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
字典中的元素是无序的
字典中的key必须是不可变对象
字典也可以根据需要动态的伸缩
字典会浪费较大的内存,是一种使用空间换时间的数据结构
字典生成式:
items = ['fruits','books','others']
prices=[33,55,66]
====>
{'fruits':33,'books':55,'others':66}
内置函数zip():
用于将可迭代的对象作为参数,
将对象中对应 的元素打包成一个元组,然后返回由这些元组组成的列表