一篇文章学会字典!!!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

字典是Python中的一种数据结构,用于存储键值对的集合。本文将从声明、遍历、常用操作等方面进行表述


提示:以下是本篇文章正文内容,下面案例可供参考

一、字典是什么?

字典是Python中的一种数据结构,用于存储键值对的集合。字典使用花括号{}来表示,键和值之间使用冒号:分隔,每个键值对之间使用逗号分隔。

字典中的键必须是唯一的,而值则可以是任意类型的对象,包括数字、字符串、列表等。字典是可变的,可以通过键来添加、修改或删除对应的值。

字典提供了一种快速查找和访问数据的方式,可以通过键来获取对应的值,而不需要遍历整个字典。字典也支持一些常用的操作,如计算字典的长度、检查某个键是否存在于字典中等。

字典在处理一些需要存储和管理大量数据的情况下非常有用,可以根据键快速获取对应的值,提高程序的效率。同时,字典还可以用于存储一些相关联的信息,使得数据之间的关系更加清晰和易于理解

二、字典的声明

定义字典:使用{}或者dict

  • 字典的格式是键(key)值(value)对

  • 键与值用冒号隔开,多个键值对之间用,隔开

  • 值可以是任意数据类型

  • 键:不可变类型,普遍的键均是字符串

# 数据结构:字典

# 定义字典:使用{}或者dict
d0 = {}
d1 = dict()
print(type(d0), type(d1))  # <class 'dict'> <class 'dict'>

# 字典的格式是键(key)值(value)对
# 键与值用冒号隔开,多个键值对之间用,隔开
d2 = {
    "name": "守望tk",
    "age": 18,
    "address": "郑州"
}
print(d2, type(d2))
# {'name': '守望tk', 'age': 18, 'address': '郑州'} <class 'dict'>

# 值可以是任意数据类型
d3 = {
    "k1": "value1",
    "k2": 100,
    "k3": 3.14,
    "k4": False,
    "k5": None,
    "k6": [1, 2, 3],
    "k7": (100,),
    "k8": {
        "k9": {

        },
        "k10": [
            {
                "Id": 100,
                "name": "Coco奶茶"
            },
            {
                "Id": 101,
                "name": "沪上阿姨"
            },
            {
                "Id": 102,
                "name": "喜茶"
            }
        ]
    }
}
print(type(d3))  # <class 'dict'>

# 键:不可变类型,普遍的键均是字符串
# 5种数据类型均是不可变类型
d4 = {
    "name": "守望tk",
    100: "整数型",
    3.14: "这是PI",
    True: "布尔值",
    None: "空值",
    # []: "列表,可变类型会报错"
    # unhashable type: 'list'
    # 元组是不可变类型,可以作为字典的键
    (): "元组",
    # {}:"字典是可变类型,不可以作为键",
    # 键不可以重复
    True: "我会覆盖之前的True对应得值",
    "hi": "守望tk"
}
print(type(d4))   # <class 'dict'>

三、字典的基础知识

1.字典是可变类型

d0 = {}
print(d0, id(d0))  # {} 2076934162752
d0["name"] = "守望tk"
print(d0, id(d0))  # {'name': '守望tk'} 2076934162752

2.字典的获取和修改

  • 获取:字典名[键名]

  • 修改:字典名[键名] = 值,如果键已经存在,会替换原始值

d0["name"] = "守望tk"
# 设置键已经存在,会替换原始值
d0 = {
    "name": "wl",
    "age": 18
}
print(d0)  # {'name': 'wl', 'age': 18}
d0["name"] = "守望tk"
print(d0, )  # {'name': '守望tk', 'age': 18}
# 获取键对应的值
print(d0["name"], d0["age"])  # 守望tk 18

3.字典的遍历

常用的方法共有3种:

  • 遍历所有的键 :for key in d.keys()
  • 遍历所有的值:for value in d.values()
  • 遍历所有的键值对:for k,v in d.items()

还有一种遍历方法:遍历字典获取所有key :for key in d:
但这种方法与第一种重合而且不建议使用常被忽略,此处只做补充

代码实例如下:

d1 = {
    "name": "守望tk",
    "age": 18,
    "address": "郑州"
}

# 遍历
# 1.遍历字典获取key
# 不建议使用
for key in d1:
    print(key, d1[key])
# 2.遍历字典所有键
for key in d1.keys():
    print(key, d1[key])
# 3.遍历字典的所有值
for value in d1.values():
    print(value)
# 4.遍历字典所有的键值对
for item in d1.items():
    print(item, type(item))
    # ('name', '守望tk') < class 'tuple'>
    # ('age', 18) < class 'tuple'>
    # ('address', '郑州') < class 'tuple'>
# 常用方式
for key, value in d1.items():
    print(key, value)
# name 守望tk
# age 18
# address 郑州

四、字典的常用操作

字典中的常用操作有以下几种:

get
根据键取值
取不到返回None
取不到也可以指定默认值
字典[键]
如果取不到 会报错

方法含义
len获取字典键值对的个数
in判定是否有这个键
keys()遍历所有的键
values()遍历所有的值
items()遍历所有的键值对
value = pop(key)根据键删除键值对,返回值
key, value = popitem()删除最后一个键值对,并且返回元组
clear()清空
update({ })将字典中所有键值对合并到原始字典:如果键已经存在,则替换
dict.fromkeys(keys, value)创建一个新字典:所有的值的是value,键来源于keys列表
setdefault(key, value)如果键不存在,则添加,返回新值;键已经存在,不添加,返回原始数据
get根据键取值:取不到,返回None / 指定默认值;字典[键]:如果取不到 会报错

代码实例如下:

# 常用操作
d2 = {
    "name": "守望tk",
    "age": 18,
    "address": "郑州"
}
# len 获取字典键值对的个数
print(len(d2))  # 3
# 判断是否有这个键
print("name" in d2, "sex" in d2)  # True False

# 所有的键
print(d2.keys())  # dict_keys(['name', 'age', 'address'])
# 所有的值
print(d2.values())  # dict_values(['守望tk', 18, '郑州'])
# 所有的键值对
print(d2.items())  # dict_items([('name', '守望tk'), ('age', 18), ('address', '郑州')])

# 根据键删除键值对,返回值
# r = d2.pop()
# print(r, d2)
# pop expected at least 1 argument, got 0
r = d2.pop("name")
print(r, d2, "name" in d2)
# 删除最后一个写入的键值对,并且返回元组
r = d2.popitem()
print(r, d2)  # ('address', '郑州') {'age': 18}
# 清空
d2.clear()
print(d2)  # {}

d3 = {
    "name": "守望tk",
    "age": 18,
    "address": "郑州"
}
# 如果已经存在该键,不添加返回原始值
# 如果不存在则添加
r = d3.setdefault("age", 25)
print(d3, r)   # {'name': '守望tk', 'age': 18, 'address': '郑州'} 18
r = d3.setdefault("sex", "女")
print(d3, r)  # {'name': '守望tk', 'age': 18, 'address': '郑州', 'sex': '女'} 女
# 将新字典中所有键值对合并到原有字典,如果键已经存在则替换
d3.update({
    "phone": 123456,
    "age": 20
})
print(d3)
# {'name': '守望tk', 'age': 20, 'address': '郑州', 'sex': '女', 'phone': 123456}

# 初始化字典 ==> 创建一个新字典
d4 = dict.fromkeys(["k1", "k2", "k3"], 100)
print(d4)   # {'k1': 100, 'k2': 100, 'k3': 100}


d4 = {
    "name": "守望tk",
    "age": 18,
    "address": "郑州"
}
# 根据建取值
# 取不到返回None/默认值
r = d4.get("sex")
print(r)  # None
r = d4.get("sex", 100)
print(r)  # 100
# 取不到返回None
print(d4.get("name1", "ll"))  # ll
# 取不到报错
print(d4["name1"])  # KeyError: 'name1'

总结

以上就是今天要讲的内容,本文简单介绍了Python中字典的使用,希望小仙女或者男神们可以从中收获一些东西!!谢谢观看Thanks♪(・ω・)ノ

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值