字典(dict)

1.概念

列表和元组的使用缺点:当存储的数据要动态添加、删除的时候,我们一般使用列表,但是列表有时会遇到一些麻烦

解决方案:既能存储多个数据,还能在访问元素的很方便的定位到需要的元素,采用字典

语法:

{键1: 值1, 键2: 值2, 键3: 值3, ..., 键n: 值n}

说明:键值对: key-value

  1. 字典和列表类似,都可以用来存储多个数据
  2. 在列表中查找某个元素时,是根据下标进行的;字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值)
  3. 字典中的每个元素都由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值
  4. 键可以使用数字、布尔值、元组,字符串等不可变数据类型,但是一般习惯使用字符串,切记不能使用列表等可变数据类型
  5. 每个字典里的key都是唯一的,如果出现了多个相同的key,后面的value会覆盖之前的value

习惯使用场景:

  1. 列表更适合保存相似数据,比如多个商品、多个姓名、多个时间
  2. 字典更适合保存不同数据,比如一个商品的不同信息、一个人的不同信息

2.字典的定义

# 1.定义空字典 {}
dict1 = {}
print(type(dict1)) # <class 'dict'>

#2.定义非空字典
# 第一种定义字典的方式
dict2 = {"name":"小解","age":25,"love":"女","sex":"**"} # 最常用
print(dict2)
print(type(dict2))
print(dict2["name"],dict2["love"]) # 访问字典
# 第二种定义字典的方式 dict(key=value,key1=value1,...) key表示键 value表示值
dict3 = dict(num1 = "123",num2 = "987")
print(dict3)

# 第三种定义字典的方式
# dict(zip([key1,key2,key3....],[value1,value2,value3......]))
# 注意:key和value的数量不一致时,以数量少的为基准
dict4 = dict(zip(['n1','n2','n3'],[12,34,56]))
dict5 = dict(zip(['n1','n2','n3'],[12,34,56,45,67,89]))
print(dict4)
print(dict5)

# 第四种方式:
dict6 = dict([("a",10),("b","98"),("c",67),("d",34)])
print(dict6) # {'a': 10, 'b': '98', 'c': 67, 'd': 34}

3.字典操作

代码演示:

# 1.访问字典中的元素
# 第一种方式: 直接通过下标访问
dict1 = {"name":"中国医生","author":"刘伟强","person":"张涵予"}
print(dict1['author'])
# print(dict1['money']) # 访问字典中不存在的key时,直接报错

# 第二种方式:通过get()方法获取
print(dict1.get('name'))
print(dict1.get('money')) # None 访问字典中不存在的key时,返回None
# 访问字典中不存在的key时,若传递了第二个参数,第二个参数会设置为默认值,
print(dict1.get('money',10000000)) 

#2. 获取字典的长度 len()
print(len(dict1))

# 3.获取字典中所有的key
print(dict1.keys()) # dict_keys(['name', 'author', 'person'])

# 4.获取字典中所有的value
print(dict1.values()) # dict_values(['中国医生', '刘伟强', '张涵予'])

# 5.获取字典中的所有的key和value items()
print(dict1.items()) # dict_items([('name', '中国医生'), ('author', '刘伟强'),
('person', '张涵予')])

# 6.遍历字典
'''
# 第一种方式: for in
for i in dict1: # 遍历字典中所有的key
print(i)

# 第二种方式:enumrate() 遍历字典中所有的key
for k,v in enumerate(dict1):
print(k,'----',v)

# 第三种方式: items 遍历字典中所有的key和value
for k,v in dict1.items():
print(k,'----',v)

# 第四种方式:遍历 字典中所有的值
for v in dict1.values():
print(v)

# 合并字典 update()
dict2 = {"name":"袁建鑫","money":"1999999","age":23}
dict3 = {"sex":"猛男"}
dict2.update(dict3)
print(dict2)
dict4 = {"name":"iPhone13","money":20000,"color":"土豪金"}

# 增
dict4["size"] = 6.5
print(dict4)

# 改
dict4['color'] = "骚粉"
print(dict4)

# 删
# 第一种:pop() 删除指定的元素
#dict4.pop("color")
print(dict4)

# 第二种:popitem() 随机返回并删除字典中的最后一对key和value
dict4.popitem()
print(dict4)

# clear() 清空字典
dict4.clear()
print(dict4)
  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值