文章目录
目录
1.创建字典
1.1使用{}创建字典
2.访问字典
2.1key访问
2.2for循环访问
2.3更改字典值
3.内置函数
3.1转换为字典
4.内置方法
4.1 清除 clear()
4.2 输出值 get()
4.3 输出项 items()
4.4 输出键 keys()
4.5 输出值 values ()
4.6 移除 pop() popitem()
4.7 添加元素 setdefault()
4.8 更新 update()
4.9 拷贝 copy()
1.创建字典
dict:字典: dictionary, 字典中的元素是key:value的形式, 使用{} 创建。
1.1使用{} 创建字典,并打印出字典。
dict_data = {1: [2, 3], 2: 4, 4: 7} #创建字典
print(dict_data) #打印字典内容
{1: [2, 3], 2: 4, 4: 7} #输出字典内容
2.访问字典
2.1key访问
通过打印字典中key输出值
dict_data = {1: [2, 3], 2: 4, 4: 7} #创建字典
print(dict_data[1]) #打印字典中key=1的值
[2, 3] #输出 key=1 对应的值
2.2for循环访问
(1)获取key
dict_data = {"9": 9.9, "3": 3.3, "5": 5.5} #创建字典
for i in dict_data: #使用for循环打印字典的key
print(i)
9 #输出字典中的key
3
5
(2)获取value
dict_data = {"9": 9.9, "3": 3.3, "5": 5.5} #创建字典
for i in dict_data.values(): #使用for循环打印字典的值
print(i)
9.9 #输出字典中的值
3.3
5.5
(3)获取(key,value)
dict_data = {"9": 9.9, "3": 3.3, "5": 5.5} #创建子弹
for i in dict_data.items(): #使用for循环打印字典中的项
print(i)
('9', 9.9) #输出字典中的项
('3', 3.3)
('5', 5.5)
(4)获取 key value
dict_data = {"9": 9.9, "3": 3.3, "5": 5.5} #创建字典
for key, value in dict_data.items(): #使用for循环打印字典项中的key和value
print(key, value)
9 9.9 #输出字典中的key和value
3 3.3
5 5.5
2.3更改字典值
语法为 dict_data[key] = value
dict_data = {1: [2, 3], 2: 4, 4: 7} #创建字典
dict_data[1] = '21' #更改字典key=1的值为'21'
print(dict_data) #打印字典
{1: '21', 2: 4, 4: 7} #输出字典内容
3.内置函数
3.1转换为字典
语法为 dict()
dict_data = dict([(1, 2), ("4", 8), ['6', 12]]) #将列表转换为字典
print(dict_data) #打印字典
{1: 2, '4': 8, '6': 12} #输出字典
4.内置方法
4.1清除 clear
Remove all items from D.
删除D中的所有项目
默认为清除字典中全部的内容
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
dict_data.clear() #使用clear方法清除字典
print(dict_data) #打印字典
{} #输出字典
4.2 输出值 get(self , key, default=None, / )
self:自己(一般不赋值)
key:键 一般需要赋值
default = None : 默认为None 不用给特定值
Return the value for key if key is in the dictionary, else default.
如果关键字在字典中,则返回关键字的值,否则为默认值(默认值一般为None)
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
print(dict_data.get(3)) #打印字典中key=3的值
print(dict_data.get(4)) #打印字典中key=4的值
4 #输出字典中key=3的值
None #输出字典中key=4的值
4.3 输出项 items()
项: 即(key,value)
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
print(dict_data.items(), type(dict_data.items())) #打印字典中的项及类型
dict_items([(1, 2), (2, 3), (3, 4)]) <class 'dict_items'> #输出项及类型
4.4输出键 keys()
keys:即字典中的所有键key
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
print(dict_data.keys()) #打印字典中所有的键key
dict_keys([1, 2, 3]) #输出字典中所有的键key
4.5输出值 values ()
values:即字典中所有的值value
dict_data = {1: 5, 2: 3, 3: 4} #创建字典
print(dict_data.values(), type(dict_data.values())) #打印字典中的所有值及类型
dict_values([5, 3, 4]) <class 'dict_values'> #输出字典中的所有值及类型
4.6移除 pop() popitem()
pop:
remove specified key and return the corresponding value.
移除指定的键并返回相应的值
If the key is not found, return the default if given; otherwise, raise a KeyError.
如果找不到密钥,则返回默认值(即报错)
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
print(dict_data.pop(2)) #打印字典中key=2的项的值并移除该项
print(dict_data) #打印现字典
3 #输出字典中key=2 的值
{1: 2, 3: 4} #输出字典
popitem:
Remove and return a (key, value) pair as a 2-tuple.
移除(键,值)对并将其作为2元组返回
Pairs are returned in LIFO (last-in, first-out) order.
对按后进先出(后进先出)顺序返回。
Raises KeyError if the dict is empty.
如果dict为空, 则引发 KeyError
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
print(dict_data.popitem()) #打印字典的最后一项并在字典中移除该项(默认移除后进先出的项)
print(dict_data) #打印此刻字典
print(dict_data.popitem()) #打印此刻字典的最后一项并在字典中移除该项
print(dict_data) #打印此刻字典
print(dict_data.popitem()) #打印此刻字典的最后一项并在字典中移除该项
print(dict_data) #打印最后的字典
(3, 4) #输出第一次移除的项
{1: 2, 2: 3} #输出字典
(2, 3) #输出第二次移除的项
{1: 2} #输出字典
(1, 2) #输出最后一次移除的项
{} #输出字典
4.7添加元素 setdefault()
Insert key with a value of default if key is not in the dictionary.
如果关键字不在字典中, 则插入具有默认值的关键字(默认为None)。
Return the value for key if key is in the dictionary, else default.
如果关键字在字典中,则返回关键字的值, 否则为默认值。
dict_data = {1: 2, 2: 3, 3: 4} #创建字典
print(dict_data.setdefault(4)) #打印字典中key=4的项的值,
若无key=4的项则添加该项并给定默认值None
print(dict_data) #打印此刻字典
print(dict_data.setdefault(2)) #打印字典中key=2的项的值
dict_data.setdefault("8", 8) #在字典中添加一个项 "8": 8
print(dict_data) #打印字典
None #输出 字典中key=4的项的值
{1: 2, 2: 3, 3: 4, 4: None} #输出字典
3 #输出 字典中key=2的项的值
{1: 2, 2: 3, 3: 4, 4: None, '8': 8} #输出字典
4.8更新 update()
update: 即将字典2的内容融入字典1中并更新字典1中key与字典中key相同的项的值
dict_data1 = {1: 2, 2: 3, 3: 4} #创建字典1
dict_data2 = {1: 3, 3: 9, "8": 8} #创建字典2
dict_data1.update(dict_data2) #将字典2的内容融入字典1
并更新字典1中key与字典2中key相同的项的值
print(dict_data1) #打印字典1
{1: 3, 2: 3, 3: 9, '8': 8} #输出字典1
4.9拷贝 copy()
(1)浅拷贝:
即 拷贝了一个独立的父对象,子对象与原字典的子对象指向同一对象。
dict_data = {1: [2, 3, 4]} #创建字典
new_dict = dict_data.copy() #浅拷贝字典
print(dict_data, new_dict) #打印原字典和浅拷贝字典
dict_data[1].append(5) #在原字典中追加一个元素1:[5]
print(dict_data, new_dict) #打印原字典和浅拷贝字典
{1: [2, 3, 4]} {1: [2, 3, 4]} #输出原字典和浅拷贝字典
{1: [2, 3, 4, 5]} {1: [2, 3, 4, 5]} #输出追加后的原字典和浅拷贝字典
(2)深拷贝:
即 既父对象和子对象都与原字典中的父子对象互相独立。
from copy import deepcopy #用于浅复制导入深度复制
dict_data = {1: [2, 3, 4]} #创建字典
deep_dict = deepcopy(dict_data) #深拷贝字典
print(dict_data, deep_dict) #打印字典和深拷贝字典
dict_data[1].append(5) #原字典追加一个元素1:[5]
print(dict_data, deep_dict) #打印字典和深拷贝字典
{1: [2, 3, 4]} {1: [2, 3, 4]} #输出字典和深拷贝字典
{1: [2, 3, 4, 5]} {1: [2, 3, 4]} #输出追加后的字典和深拷贝字典