字典(dict)

参考文档:内置类型 — Python 3.12.4 文档

一、基本介绍

1、字典(dict)也是一种常用的Python数据类型,其他语言可能把字典称为联合内存或联合数组

2、字典是一种映射类型,非常适合处理通过xx查询yy的需求,这里的xx我们称为Key(键/关键字),这里的yy我们称为Value(值),即Key--Value的映射关系

二、字典的定义

1、字典的定义

创建一个字典,只要把逗号分隔的不同元素,用{ }括起来即可,存储的元素是一个个的键值对

dict_a={key1:value1,key2:value2,key3:value3....}

通过key取出对应的value语法:

字典名[key]

dict_a[key1]

2、字典使用实例

# 定义字典
tel={'jack':4098,'tom':4139}  # {'jack': 4098, 'tom': 4139}  dict
print(f"dict_tel:{tel} 类型:{type(tel)}")

# 查询jack的tel
print("jack的tel:",tel['jack'])  # 4098

三、注意事项和使用细节

1、字典的Key(关键字)通常是字符串或数字,Value可以是任意数据类型

# 定义字典
tel={'jack':4098,'tom':4139}  # {'jack': 4098, 'tom': 4139}  dict
print(f"dict_tel:{tel} 类型:{type(tel)}")

# 查询jack的tel
print("jack的tel:",tel['jack'])  # 4098

# 字典的Key(关键字)通常是字符串或数字,Value可以是任意数据类型
dict_a={
    "jack":[100,200,300],
    "mary":(10,20,"hello"),
    "nono":{"apple","pear"},
    "smith":"计算机老师",
    "周星驰":{
        "性别":"男",
        "age":18,
        "地址":"香港"
    },
    "key1":100,
    "key2":9.8,
    "key3":True
}
print(f"dict_a:{dict_a} 类型:{type(dict_a)}")

2、 字典不支持索引,会报KeyError

#  字典不支持索引,会报KeyError
# print(dict_a[0])

3、既然字典不支持索引,所以对字典进行遍历不支持while,只支持for,注意直接对字典进行遍历,遍历得到的是key

# 既然字典不支持索引,所以对字典进行遍历不支持while,只支持for
dict_b = {'one': 1, 'two': 2, 'three': 3}

# 遍历方式 1-依次取出 key,再通过dict[key]取出对应的value
print("-------遍历方式1-------")
for key in dict_b:
    print(f"key:{key} value:{dict_b[key]}")

# 遍历方式 2-依次取出 value
print("-------遍历方式2-------")
for value in dict_b.values():
    print(f"value:{value}")

# 遍历方式 3-依次取出 key-value
print("-------遍历方式3-------")
for k,v in dict_b.items():
    print(f"key:{k} value:{v}")

 

4、创建空字典可以通过{ },或者dict()

# 创建空字典可以通过{ },或者dict()
dict_c={}
dict_d=dict()
print(f"dict_c:{dict_c} 类型:{type(dict_c)}")  #{} dict
print(f"dict_d:{dict_d} 类型:{type(dict_d)}")  #{} dict

5、字典的key必须是唯一的,如果你指定了多个相同的key,后面的键值对会覆盖前面的

# 字典的key必须是唯一的,如果你指定了多个相同的key,后面的键值对会覆盖前面的
dict_e = {'one': 1, 'two': 2, 'three': 3, 'two': 200}
print(f"dict_e:{dict_e}")  # {'one': 1, 'two': 200, 'three': 3}

四、字典常用操作

1、字典常用操作

1)文档:内置类型 — Python 3.12.4 文档

 2)常用操作一览

2、演示字典常用操作

1)len(d):返回字典d中的项数

# 定义字典
dict_a={'one': 1, 'two': 2, 'three': 3}
# len(d):返回字典d中的项数
print(f"dict_a 的元素个数:{len(dict_a)}")  # 3

2)d[key]:返回d中以key为键的项。如果映射中不存在key,则会引发KeyError

# d[key]:返回d中以key为键的项。如果映射中不存在key,则会引发KeyError
print("key为three对应的value:",dict_a['three'])  # 3

3)d[key]=value:将d[key]设为value,如果key已经存在,则是修改value,如果key不存在,则是增加key-value,注意会直接修改原来的字典

# d[key]=value:将d[key]设为value,如果key已经存在,则是修改value,
# 如果key不存在,则是增加key-value,注意会直接修改原来的字典
# 修改 需求:修改 key='one'对应的value为'第一'
dict_a['one']='第一'
print(f"dict_a:{dict_a}")  # {'one': '第一', 'two': 2, 'three': 3}

# 添加 需求:增加key为'four',value为4
dict_a['four']=4
print(f"dict_a:{dict_a}")  # {'one': '第一', 'two': 2, 'three': 3, 'four': 4}

4)del d[key]:将d[key]从d中移除。如果映射中不存在key,则会引发KeyError

# del d[key]:将d[key]从d中移除。如果映射中不存在key,则会引发KeyError
# 需求:删除 key为'four'的元素
del dict_a["four"]
print(f"dict_a:{dict_a}")  # {'one': '第一', 'two': 2, 'three': 3}

5)pop(key,[default]:如果key存在于字典中,则将其移除并返回其值,否则返回default。如果default未给出且key不存在于字典中,则会引发KeyError

# pop(key,[default]:如果key存在于字典中,则将其移除并返回其值,否则返回default。
# 如果default未给出且key不存在于字典中,则会引发KeyError
# 需求:将key为'one'的值返回,并将该元素从字典中移除
val=dict_a.pop('one')
print(f"val:{val}")  # 第一
print(f"dict_a:{dict_a}")  # {'two': 2, 'three': 3}

6)keys():返回字典中所有的key

# keys():返回字典中所有的key
dict_a_keys=dict_a.keys()
print(f"dict_a_keys:{dict_a_keys}")  # dict_keys(['two', 'three'])
print(f"类型是:{type(dict_a_keys)}")  # <class 'dict_keys'>
for k in dict_a_keys:
    print("k->",k)
# k-> two  k-> three

7)key in d:如果d中存在键key,则返回True,否则返回False

# key in d:如果d中存在键key,则返回True,否则返回False
# 需求:判断字典中是否有 key='two'
print("two" in dict_a)  # True

8)clear():移除字典中的所有元素

# clear():移除字典中的所有元素
# 需求:将字典清空
dict_a.clear()
print(f"dict_a:{dict_a}")  # {}

五、字典生成式

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值