python数据类型——字典类型

本文详细介绍了Python字典的数据结构特点,包括存储多个值、定义方式、常用内置方法如存取值、删除、长度计算、成员运算、遍历及更新等,并通过实例演示了各种操作。同时,讲解了get和setdefault方法在字典操作中的重要作用。
摘要由CSDN通过智能技术生成

1.作用

按对应信息存储多个值,比如一个人的姓名、年龄、性别等

2.定义

{}内用逗号分隔开多个key:value,其中value可以使任意类型,但是key必须是不可变类型,且不能重复

造字典的五种方法:

# 方法一 直接定义
d1 = {'k1':111, 'k2':222}
print(d1, type(d1))
{'k1': 111, 'k2': 222} <class 'dict'>

# 方法二 利用dict定义
d2 = dict(x=1, y=2, z=3)
print(d2)
{'x': 1, 'y': 2, 'z': 3}

# 将一个或多个列表定义到字典里
d3 = {} # 先定义一个空字典
info = [
    ['name', 'yxs'],
    ['age', 18],
    ['gender', 'male']
]
for k, v in info:
    d3[k] = v
print(d3)
{'name': 'yxs', 'age': 18, 'gender': 'male'}


# 方法四 一行代码搞定方法三的操作
d4 = {} # 先定义一个空字典
info = [
    ['name', 'yxs'],
    ['age', 18],
    ['gender', 'male']
]
d4 = dict(info)
print(d4)
{'name': 'yxs', 'age': 18, 'gender': 'male'}

# 方法五 定义一个初始化字典
keys = ['name', 'age', 'gender']
d5 = {}.fromkeys(keys, None)
print(d5)
{'name': None, 'age': None, 'gender': None}

3.内置方法

3.1 按key存取值,可存可取

d = {'k1':111}
# 已经存在的值,可进行修改
d['k1'] = 22
print(d)
{'k1': 22}
# 不存在,则创建新值
d['k2'] = 222
print(d)
{'k1': 22, 'k2': 222}

3.2 长度

d = {'k1':1, 'k2':2, 'k3':3, 'k4':4}
print(len(d))
4

3.3 成员运算in 和not in (in根据key)

d = {'k1':1, 'k2':2}
print('k1' in d)
True
print('k3' not in d)
True

3.4  删除

1)del 删除 (根据key删除)

d = {'k1':11, 'k2':22}
del d['k1']
print(d)
{'k2': 22}

2)pop删除 (根据key删除,有返回值 返回对应值的values)

d = {'k1':11, 'k2':22}
res = d.pop('k1')
print(d)
{'k2': 22}
print(res)
11

3)popitem 随机删除(以元组的形式返回被删除的key和values

d = {'k1':1, 'k2':2}
res = d.popitem()
print(d)
{'k1': 1}
print(res)
('k2', 2)

3.5  键keys(),值values(),键值对items()

d = {'k1':1, 'k2':2}
print(d.keys())
dict_keys(['k1', 'k2'])
print(d.values())
dict_values([1, 2])
print(d.items())
dict_items([('k1', 1), ('k2', 2)])

3.6 for循环

d = {'k1':1, "k2":2}
for k in d.keys():
    print(k)
k1
k2

for v in d.values():
    print(v)
1
2

for item in d.items():
    print(item)
('k1', 1)
('k2', 2)

3.7 clear 清空字典

d = {'k1':111}
d.clear()
print(d)
{}

3.8 update 更新字典

d = {'k1':111}
res = {'k1':1, 'k2':2} # 原字典中有的将被替换,没有的将被添加
d.update(res)
print(d)
{'k1': 1, 'k2': 2}

3.9 get 取值  根据key取值,不存在返回Nome 容错性好

d = {'k1':111}
print(d.get('k1'))
111
print(d.get('k2'))
None

3.10  setdefault

可以检索一个字典中是否存在某个key和value。没有则添加

如果key有则不添加,返回字典中key对应的值

info = {'name':'yxs'}
res = info.setdefault('name','yxs')
print(res)
yxs

info.setdefault('age', 18)
print(info)
{'name': 'yxs', 'age': 18}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr_刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值