09 字典

1.描述

:大括号扩起来,内部可以存放多个元素,元素的表现形式

k : v ( { 键 :值 } ) 键值对形式。一帮只能通过键来访问值。

k 是不可变类型,整数,浮点数,字符串

key必须是不可变类型,value可以是任意类型
在这里插入图片描述

1.创建一个字典

dict_1 = {                 # 多行书写
    'name1': 'monkey',     # 键为字符串
    1: 'cat',              # 键为整型
    2.0: 'tiger'           # 键为浮点型
}
print(type(dict_1))
print(dict_1['name1'])     # 通过键 访问值
print(dict_1[1])           # 访问不存在的值会报错
print(dict_1[2.0])

2.len() 统计字典中字典中键值对的个数

接上面程序

print(len(dict_1))

3.成员运算in 和 not in

某个值是否在这个群体中,返回值为布尔值。

字典中只默认提供key的访问,value不会暴露。

dict_1 = {
    'name1': 'monkey',     
    1: 'cat',              
    2.0: 'tiger'           
}
print('name1' in dict_1)   # True
print('aaa' not in dict_1) # True

4.删除

dict_1 = {
    'name1': 'monkey',
    1: 'cat',
    2.0: 'tiger'
}                         # del dict_1 字典就被删了
del dict_1['name1']       # del 删除dict_1 name1键对值
print(dict_1)
dict_1.pop(1)             # 弹出 键对值 1, 不是索引,索引无法使用
print(dict_1)

5.值keys(), 值values, 键对值items()

获取的值的结果可以直接看成是列表,但还需要list()转换

dict_1 = {'name1': 'monkey', 1: 'cat',2.0: 'tiger'}
print(dict_1.keys())      # 获取所有键的名称
print(dict_1.values())    # 获取所有值得内容
print(dict_1.items())     # 获取所有键对值的内容
x = list(dict_1.items())  # 获取的的值转为列表
print(x[0])               

解压序列(或者任何可迭代对象)赋值给多个变量,唯一的前提就是,变量的数量必须跟序列元素的数量一样。

dict_1 = {'name1': 'monkey', 1: 'cat',2.0: 'tiger'}
for i in dict_1.keys():   # 一个值
    print(i)              # 迭代输出键名
for i in dict_1.values(): 
    print(i)              # 迭代输出值
for i,n in dict_1.items():# 两个值
    print(i, n)           # 迭代输出键对

6.循环 “字典for循环只能获取到key”

dict_1 = {'name1': 'monkey', 1: 'cat',2.0: 'tiger'}
for i in dict_1:         # 依次输出键值
   print(i)

7. .get 通过字典key获取字典的value值

正常情况

dict_1 = {'name1': 'monkey', 1: 'cat',2.0: 'tiger'}
print(dict_1['name1'])
print(dict_1.get('name1'))

访问不存在的键时,正常访问 直接报错

dict_1 = {'name1': 'monkey', 1: 'cat',2.0: 'tiger'}
print(dict_1['name'])   # 报错
# KeyError: 'name'

访问不存在的键时,.get访问 返回None 空值,也可以返回指定的内容

dict_1 = {'name1': 'monkey', 1: 'cat',2.0: 'tiger'}
print(dict_1['name'])                # None  空值
print(dict_1.get('name', '值不存在')) # 值不存在

8. .clear清空字典

dict_1 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
dict_1.clear()
print(dict_1)      # {}

9.创建字典的多种方式

# 第一种创建字典的方式
dict_1 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
print(dict_1) # {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# 第二种创建字典的方式
dict_2 = dict(k1='v1', k2='v2', k3='v3')
print(dict_2)  # {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# 第三种创建字典的方式
dict_3 = [
    ['k1', 'v1'],
    ['k2', 'v2'],
    ['k3', 'v3']
]   # [['k1', 'v1'], ['k2', 'v2'], ['k3', 'v3']]
d = {}                 # 创建空字典
for i in dict_3:       # d[_] = _
    d[i[0]] = i[1]     # d['k1']='v1' == {'k1': 'v1'}
print(d)
# 还可以这样玩
for x,y in dict_3:     # d[_] = _
    d[x] = y
print(d)

10. dict.formkeys() 快速生成一个字典

x = ['a', 'b', 'c']           # 列表的表项被作为键
list_1 = dict.fromkeys(x,1)   # 统一添加值
print(list_1)

11. .popitem() 随机弹出一组键值

dict_1 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
dict_1.popitem()    # 弹出
print(dict_1)
dict_1.popitem()    # 弹出
print(dict_1)

12. .setdefault() 查询键对值不存在 则新建;键存在获取到键对应的值

dict_1 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
dict_1.setdefault('k4','v4')    # __键 , __值
print(dict_1)
print(dict_1.setdefault('k4'))  # v4
print(dict_1.setdefault('k5'))  # None

13. .update() 键不存在则新建,存在则修改

dict_1 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
dict_1.update({'k4':'V4'})   # 不存在则添加
print(dict_1)                # 值少了后,k4 被分为k,4
dict_1.update({'k1':'6'})    # 键存在则修该值
print(dict_1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值