字典是python中重要的数据类型,由“键-值”对组成,可通过“键”引用“值”。字典可进行定义、访问、排序等。
创建
#创建
#dictionary_name =
dict1={'语文':90,'数学':95,'英语':115}
print(dict1)
print(type(dict1))
out:
{'语文':90,'数学':95,'英语':115}
访问
字典的访问是通过key值获取相应的value值
#访问
#value=dict[key]
dict1={'语文':90,'数学':95,'英语':115}
value1=dict1["语文"]
print(value1)
out:
90
添加
#添加
dict1={'语文':90,'数学':95,'英语':115}
dict1["物理"]=85
print(dict1)
out:
{'语文':90,'数学':95,'英语':115,'物理':85}
修改
#修改
dict1={'语文':90,'数学':95,'英语':115}
dict1["语文"]=95
print(dict1)
out:
{'语文':95,'数学':95,'英语':115}
删除
pop()删除字典元素
#删除
#pop()删除字典元素
dict1={'语文':90,'数学':95,'英语':115}
dict1.pop('语文')
print(dict1)
out:
{'数学':95,'英语':115}
del()删除字典元素
#del()删除字典元素
dict1={'语文':90,'数学':95,'英语':115}
del(dict1['数学'])
print(dict1)
out:
{'语文':90,'英语':115}
clear()清空字典
#清空字典
dict1={'语文':90,'数学':95,'英语':115}
dict1.clear()
print(dict1)
out:
{}
遍历
for循环
#for循环
dict1={'语文':90,'数学':95,'英语':115}
forxindict1:
print(x,':',dict1[x])
out:
语文 :90
数学 :95
英语 :115
Items()
#items,把字典中的key和value组成元祖,并把这些元祖放在列表中返回
dict1={'语文':90,'数学':95,'英语':115}
print(dict1.items())
for(k,v)indict1.items():
print(k,':',v)
out:
语文 :90
数学 :95
英语 :115
混合型字典(字典有元祖、列表、字典等元素)的创建和访问
#混合型字典的创建和访问
dict1={'语文':(90,100),'数学':{'代数':95,'几何':108},'英语':[115,124,135]}
print(dict1['语文'])
print(dict1['语文'][])
print(dict1['语文'][1])
print(dict1['数学'])
print(dict1['数学']['代数'])
print(dict1['数学']['几何'])
print(dict1['英语'])
print(dict1['英语'][])
print(dict1['英语'][1])
out:
(90,100)
90
100
{'代数':95,'几何':108}
95
108
[115,124,135]
115
124
方法
keys()方法
#keys()方法
dict1={'语文':90,'数学':95,'英语':115}
print(dict1.keys())
out:
dict_keys(['语文','数学','英语'])
values()方法
#values()方法
dict1={'语文':90,'数学':95,'英语':115}
print(dict1.values())
out:
dict_values([90,95,115])
get()方法
#get()方法,key存在则返回key对应的value值,若不存在则返回设置的默认值
dict1={'语文':90,'数学':95,'英语':115}
print(dict1.get('语文','不存在该元素'))
print(dict1.get('生物','不存在该元素'))
out:
90
不存在该元素
update()方法
#update()方法,如果key值存在,则原来的value值会被新值覆盖
dict1={'语文':90,'数学':95,'英语':115}
dict2={'语文':90,'数学':90,'生物':115}
dict1.update(dict2)
print(dict1)
out:
{'语文':90,'数学':90,'英语':115,'生物':115}
setdefault()方法
#setdefault()方法
dict1={}
dict1.setdefault('a','none')#创建新元素并设置默认值
print(dict1)
out:
{'a':'none'}
排序
#排序
dict1={'语文':98,'数学':95,'英语':115}
#按key值排序
print(sorted(dict1.items(),key=lambdad:d[]))
#按value值值排序
print(sorted(dict1.items(),key=lambdad:d[1]))
out:
[('数学',95),('英语',115),('语文',98)]#按key值排序后的结果
[('数学',95),('语文',98),('英语',115)]#按value值排序后的结果
复制
Copy()属于浅拷贝操作,只复制数据,不复制数据的引用;
但深拷贝能够拷贝对象内部的所有数据和引用。
#复制
#copy()
# 浅拷贝操作,只复制数据,不复制数据的引用;
# 深拷贝能够拷贝对象内部的所有数据和引用。
dict1={'语文':98,'数学':95,'英语':115}
dict2={'语文':90,'数学':90,'生物':115}
dict2=dict1.copy()
print(dict2)
out:
{'语文':98,'数学':95,'英语':115}
全局字典
sys.modules模块是一个全局字典
Python启动后加载在内存中。每当第一次导入新的模块,sys.modules都将记录这些模块
当第2次再次导入该模块时,Python会直接在字典查找,从而提升运行速度。
通过对sys.modules模块key和value值的打印,可以查看里面包含的模块、包、以及是所在的路径等。
#全局字典
#sys.modules模块是一个全局字典
# Python启动后加载在内存中。每当第一次导入新的模块,sys.modules都将记录这些模块
#当第2次再次导入该模块时,Python会直接在字典查找,从而提升运行速度。
importsys
print(sys.modules.keys())
print(sys.modules.values())
print(sys.modules['os'])
out:
dict_keys(['builtins','sys','_frozen_importlib','_imp','_warnings','_thread','_weakref','_frozen_importlib_external','_io','marshal','nt','winreg','zipimport','encodings','codecs','_codecs','encodings.aliases','encodings.utf_8','_signal','__main__','encodings.latin_1','io','abc','_weakrefset','site','os','errno','stat','_stat','ntpath','genericpath','os.path','_collections_abc','_bootlocale','_locale','encodings.gbk','_codecs_cn','_multibytecodec','types','functools','_functools','collections','operator','_operator','keyword','heapq','_heapq','itertools','reprlib','_collections','weakref','collections.abc','importlib','importlib._bootstrap','importlib._bootstrap_external','warnings','importlib.util','importlib.abc','importlib.machinery','contextlib','mpl_toolkits','locale','re','enum','sre_compile','_sre','sre_parse','sre_constants','copyreg'])
dict_values([,,,,,,,,,,,,,,,,…])
领取专属 10元无门槛券
私享最新 技术干货