基本数据类型—字典

  • 字典是一种无序,可变的序列,以键值对形式存储任意类型对象
  • 通过键来读取元素
  • 字典是可变的,可以任意嵌套
  • 字典的键必须唯一,键必须不可变
  • 字典的数据类型是dict()

1、python创建字典

1.1、使用{}创建字典

# 使用字符串作为键
dict1 = {"数学"102,"语文":112,"英语":99}

# 使用元组和数字作为键
dict2 = {(10,20):"great",40:[1,2,3]}
print(dict2)

# 创建空字典
dict3 = {}
print(dict3)

1.2、通过fromkeys()方法创建字典
还可以使用python使用dict字典类型提供的fromkeys()方法创建带有默认值的字典

dictname = dict.fromkeys(list,value=None)
list表示字典中所有键的列表
value表示默认值,不写则为空值

# 这种方式通常用于初始化字典,设置value的默认值
corse = ["语文","数学","英语"]
CDict = dict.fromkeys(corse,60)
print(CDict) # {'语文': 60, '数学': 60, '英语': 60}

1.3、通过dict()映射函数创建字典

方式1:
# 使用此方式创建字典时,字符串不能带引号,键必须是字符串
demo1 = dict(语文=30,数学=40,英语=79)

方式2:
list1 = [("语文",88),("数学",99),("英语",80)]
list2 = [["语文",88],["数学",99],["英语",80]]
tup1= (("语文",88),("数学",99),("英语",80))
tup2= (["语文",88],["数学",99],["英语",80])
demo2 = dict(list1) # {'语文': 88, '数学': 99, '英语': 80}

方式3:
# 可以是列表、字符串、元组
keys = ["语文","数学","英语"]
values = [88,99,101]
# 通过dict() 函数和 zip() 函数,可将前两个列表转换为对应的字典
demo3 = dict(zip(keys,values))
print(demo3)

创建空字典
demo4 = dict{}

2、访问字典

字典通过键访问元素

dict1 = {"数学"102,"语文":112,"英语":99}
#键存在
print(dict["数学"])
# 键不存在
print(dict["物理"]) # 报错

Python 更推荐使用 dict 类型提供的 get() 方法来获取指定键对应的值。当指定的键不存在时,get() 方法不会抛出异常

dict1 = {"数学":102,"语文":112,"英语":99}

# 键存在时
print(dict1.get("语文"))

# 键不存在时,返回空值None,如果想明确的提示键不存在,可以设置get()的第二个参数
print(dict1.get("物理","该键不存在")) # 该键不存在

3、删除字典

Python 自带垃圾回收功能,会自动销毁不用的字典

dict1 = {"数学":102,"语文":112,"英语":99}
del dict1

4、字典基本操作

4.1、字典添加键值对
直接给不存在的 key 赋值即可

dict1 = {"数学":102,"语文":112,"英语":99}
dict["物理"] = 99
dict["生物"] = 101
print(dict1) #{'数学': 102, '语文': 112, '英语': 99, '物理': 99, '生物': 101}

4.2、字典修改键值对
key不能被修改,只能修改值

dict1 = {"数学":102,"语文":112,"英语":99}
dict1["语文"] = 140
print(dict1) # {'数学': 102, '语文': 140, '英语': 99}

4.3、字典删除键值对
使用 del 语句

dict1 = {"数学":102,"语文":112,"英语":99}
del dict1["英语"]
print(dict1) # {'数学': 102, '语文': 112}

4.4、判断字典中是否存在指定的键值对
先判断是否有对应的键,使用in 或not in

dict1 = {"数学":102,"语文":112,"英语":99}
print("语文" in dict1) #True
print("地理" in dict1) # False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值