零基础学习Python第13天:Python中的字典

前言

在Python中,字典(Dictionary)是一种无序、可变且可迭代的数据类型,用于存储键-值对(Key-Value pairs)。字典使用大括号{}来定义,每个键值对之间使用冒号:分隔。

目前为止,我们已经学完了5种基本的数据类型,包括三个复杂的数据类型,分别是,列表,元组,和字典。本节我们主要来介绍字典。

               

一、字典的定义

1、定义一个空字典,并查看类型

字典的定义是使用花括号

d0 ={}
d1 = dict()
print(type(d0),type(d1))
# 运行结果:class 'dict'> <class 'dict'>

2、定义一个简单的字典

字典的格式是键值对,键与值要用冒号隔开,多个键值对之间使用逗号隔开。

# 冒号前面的是键,冒号后面的是值
d3 = {
    "year": 2024,
    "moth": 1,
    "day": 16,
    "name": "xingxing"
}
print(type(d3))
# 运行结果:<class 'dict'>

二、字典的键和值

            

1 、字典的值

可以是任意的数据类型,我们之前学过的5种基本数据类型int 、str、 float、 bool、 none都可以使用。

d4 = {
    "key1": "value1",# 可以是字符串
    "key2": 100, # 可以是整型数字
    "key3": 3.14, # 可以是浮点数
    "key4": False, # 可以是布尔值
    "key5": None, # 可以是布尔值
    "key6": [1,2,3], # 可以是列表
    "key7": (100,), # 可以是元组
# 也可以是字典
    "key8": {
        "key11": {

        },
        "key12":[
            {
                "id": 101,
                "name": "娃哈哈",
            },
            {
                "id": 102,
                "name": "营养快线",
            },
            {
                "id": 103,
                "name": "可口可乐",
            }
        ]
        }
    }

print(type(d4),d4)
# 输出结果<class 'dict'> {'key1': 'value1', 'key2': 100, 'key3': 3.14, 'key4': False, 'key5': None, 'key6': [1, 2, 3], 'key7': (100,), 'key8': {'key11': {}, 'key12': [{'id': 101, 'name': '娃哈哈'}, {'id': 102, 'name': '营养快线'}, {'id': 103, 'name': '可口可乐'}]}}

2 、字典的键

键 是不可变类型,但是999999%的键都是字符串,

5种基本类型都是不可变类型,int、float、str、bool、none,

键不可以重复,值随意,

列表和字典都是可变类型不能作为键。

d5 = {
    "name": "王思聪",
    100: 100,
    3.14: "这是PI",
    True: "这是个bool值",
    False: "这也是个bool值",
    None: "这是个空",
    # [1,2,3]: "这是个列表", 可变类型不可以作为键
    (): "元组是不可变数据类型可以作为键",
    # {}: "字典是可变类型,不可以作为键"
    # True:我会覆盖之前的True对应的值

}

三、字典的获取与修改

                   

1、字典是可变的数据类型

d0 = {
    "name": "王健林",
    "age": 20
}
print(d0, id(d0))
# # 设置键,如果键已存在则替换
d0["name"] = "王思聪"
print(d0, id(d0))
# # 获取键对应的值
print(d0["name"], d0["age"])

2、len,获取字典键值对个数

1 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
# len,获取字典键值对个数
print(len(d1))

四、字典的遍历

                

1、遍历所有的键for key in d.keys()

d1 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
for key in d1.keys():
    print(key, d1[key])
# 运行结果 
# name 王思聪
# age 20
# addr 郑州

2、遍历所有的值for  value in d.values()

d1 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
for value in d1.values():
    print(value)
# 运行结果
# 王思聪
# 20
# 郑州

3、遍历所有键值对for k,v in d.items()

d1 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
for key, value in d1.items():
    print(key,value)
# 运行结果 
# name 王思聪
# age 20
# addr 郑州

四、字典的操作

1、获取字典键值对的个数

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
print(len(d2))
# 运行结果:3

2、判定是否有这个键

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
print("name" in d2, "sex" in d2)
# True False

3、常用方法

3.1、遍历

①、for key in d.keys()

遍历所有的键

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
for key in d2.keys():
    print(key,d2[key])

②、for  value in d.values()

遍历所有的值

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
for value in d2.values():
    print(value)
③、for k,v in d.items()

遍历所有的键值对

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
for key,value in d2.items():
    print(key,value)

3.2、删除

①、value = pop(key)

根据键删除键值对 返回值

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
r = d2.pop("name")
print(r,d2,"name" in d2)
# 运行结果:王思聪 {'age': 20, 'addr': '郑州'} False
②、key, value = popitem()

删除最后一个键值对,并且返回元组

d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}

# # 删除最后一个写的键值对(Python独有),并且返回元组
r = d2.popitem()
print(r, d2)
# 运行结果:('addr', '郑州') {'name': '王思聪', 'age': 20}
③、clear()

清空


d2 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
# 清空
r = d2.clear()
print(d2)
# 运行结果:{}

3.3、修改

①、update({ })

将字典中所有的键值对合并到原始字典,如果键已存在则替换

# 将字典中所有键值对合并到原始字典,如果键已存在,则替换
# d3.update({
#     "sex": "男",
#     "age": 25
# })
# print(d3)
②、dict.fromkeys(keys, value)

创建一个新字典,所有的值是value,键来源于keys列表

# d4 = dict.fromkeys(["key1","key2","key3"], 100)
# print(d4)
③、setdefault(key, value)

如果键不存在,则添加,返回新值

如果键已经存在,则不添加,返回原始数据

# 如果已经存在该键,则不添加,返回原始值
# 如果不存在则添加
r = d3.setdefault("age", 25)
print(d3, r)

3.4、get

①、根据键取值,取不到返回None

取不到也可以指定默认值

d4 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
# 根据键取值,取不到返回None,也可以指定默认值
print(d4.get("name1"))
②、字典[键]

如果取不到 会报错

d4 = {
    "name": "王思聪",
    "age": 20,
    "addr": "郑州"
}
# 根据键取值,取不到返回None,也可以指定默认值
# print(d4.get("name1"))
# 默认的字典[],如果取不到报错
print(d4["name1"])

拜~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值