Python之字典

字典是一种映射类型的数据结构,使用大括号" { } "表示哈希值和对象一一对应的关系。作为数据容器,字典可以存放任意类型的数据,甚至可以包含另一个字典。字典是可变类型,因此可以对其进行添加、修改和删除等操作。字典中的哈希值称为键,键可以是任意不可变类型,键所对应的对象称为值,字典是键值对类型的容器。

一、创建字典

Python中有多种方式创建字典,如下,直接使用" { } "默认创建一个空字典。更规范的做法如第4行所示,通过键值对创建字典,还可以通过dict关键字创建字典。

dic={}
print("字典的类型:",type(dic))
print("字典的内容:",dic)
dic={"key1":"hello","key2":"world"}
print("创建字典时设置初始值:",dic)
dic=dict((["key3","hello"],["key4","world"]))
print("使用dict关键字创建字典:",dic)

执行结果如下

字典的类型: <class 'dict'>
字典的内容: {}
创建字典时设置初始值: {'key1': 'hello', 'key2': 'world'}
使用dict关键字创建字典: {'key3': 'hello', 'key4': 'world'}

二、修改字典和删除字典

修改字典的内容,需要先找到对应元素。同列表一样,字典也可以通过下标进行访问,只是下标值是键。通过键找到对应的数据后,使用del关键字进行删除,如下

dic={"key1":"hello","key2":"world"}
print("获取key1的值:",dic["key1"])
dic["key1"]="hello python"
print("修改key1的内容:",dic)
dic["key2"]=list(range(0,5))
print("修改key2的内容:",dic)
dic["key3"]="spark"
print("添加一个新键key3:",dic)
del dic["key2"]
print("删除key2后的内容:",dic)

执行结果如下,输出列表

获取key1的值: hello
修改key1的内容: {'key1': 'hello python', 'key2': 'world'}
修改key2的内容: {'key1': 'hello python', 'key2': [0, 1, 2, 3, 4]}
添加一个新键key3: {'key1': 'hello python', 'key2': [0, 1, 2, 3, 4], 'key3': 'spark'}
删除key2后的内容: {'key1': 'hello python', 'key3': 'spark'}

三、字典推导式

列表可以推导,字典也可以推导。列表推导返回的结果是一个列表类型,字典推导返回的结果是一个字典类型。列表推导是在表达式两头使用中括号,字典推导是在表达式两头使用大括号,如下

dic={"key1":"hello","key2":"world"}
result={
    k:dic.get(k).upper()
    for k in dic.keys()
}
print("将字典值转为大写:",result)

result={
    k:"hello"+dic.get(k).upper()
    for k in dic.keys()
    if k == "key2"
}
print("筛选出key2的值并拼接hello:",result)

执行结果如下,输出列表

将字典值转为大写: {'key1': 'HELLO', 'key2': 'WORLD'}
筛选出key2的值并拼接hello: {'key2': 'helloWORLD'}

四、内建方法

为方便操作字典对象,pyth提供了多个内建函数。这些函数用于获取字典的值、获取键、、获取整个项、创建字典副本、修改字典元素等。本小节将详细演示如何使用这些内建函数。

1.get函数

get函数用于从字典获取指定键的值。在get函数中可以设置默认值,当get函数没有获取到对应键时,get函数会将默认值返回,如下

dic={"key1":"hello","key2":"world"}
val=dic.get("key1")
print("键key1的值为:",val)

val=dic.get("key3")
print("键key3的值为:",val)

val=dic.get("key3","default")
print("键key3的值为:",val)

执行结果如下,可以看到,字典中没有键" key3 “,此时获取” key3 “的值将返回None。若是在get函数的参数中设置了默认值” default “,则将返回” default "。

键key1的值为: hello
键key3的值为: None
键key3的值为: default
2.keys函数

keys函数将以列表的形式返回字典中的所有键,如下

dic1={"key1":"hello","key2":"world"}
print("dic1的所有键:",dic1.keys())

dic2={"key1":"hello","key2":{"key3":"world"}}
print("dic2的所有键:",dic2.keys())

执行结果如下,可以看到keys函数只会返回当前字典的所有键,并不包含所嵌套的字典的键。

dic1的所有键: dict_keys(['key1', 'key2'])
dic2的所有键: dict_keys(['key1', 'key2'])
3.items函数

items函数将以列表的形式返回字典中的所有项,这些项是二元组结构,如下

dic={"key1":"hello","key2":"world"}
items=dic.items()
print("dic的所有项:",items)
print("字典项为:")
for item in items:
    print(item)

执行结果如下,输出列表

dic的所有项: dict_items([('key1', 'hello'), ('key2', 'world')])
字典项为:
('key1', 'hello')
('key2', 'world')
4.values函数

values函数将以列表的形式返回字典中的所有值,如下

dic={"key1":"hello","key2":"world"}
values=dic.values()
print("dic的所有值:",values)
print("字典值为:")
for value in values:
    print(value)

执行结果如下,输出字典项

dic的所有值: dict_values(['hello', 'world'])
字典值为:
hello
world
5.clear函数

clear函数用于将字典清空,如下

dic={"key1":"hello","key2":"world"}
dic.clear()
print("输出清空后的字典:",dic)
print("输出清空后的字典长度:",len(dic))

执行结果如下,输出空字典和字典的长度,也就是字典元素个数

输出清空后的字典: {}
输出清空后的字典长度: 0
6.copy函数

copy函数用于创建字典的副本,如下,其与列表的copy函数表现出的性质一样,修改原字典对象,不会影响其副本。

dic={"key1":"hello","key2":"world"}
new_dic=dic.copy()
del dic["key1"]
print("原字典:",dic)
print("副本:",new_dic)

执行结果如下,输出原字典和副本,可以看到,删除原字典的键,副本并没有发生变化

原字典: {'key2': 'world'}
副本: {'key1': 'hello', 'key2': 'world'}
7.fromkeys函数

fromkeys函数用于创建一个新的字典,第一个参数是一个序列,用于作为字典的键。第二个参数也是一个序列,作为每个键的值。如下,在第2行,fromkeys函数的调用没有传入第二个参数,那么每个键将使用" None "作为值。第6行的调用传入了 " default ",那么每个键将使用 "default "作为值。

tmp_tuple=("key1","key2")
dic=dict.fromkeys(tmp_tuple)
print("通过元组创建字典:",dic)

tmp_tuple=("key1","key2")
dic=dict.fromkeys(tmp_tuple,"default")
print("设置键的值:",dic)

执行结果如下,输出字典

通过元组创建字典: {'key1': None, 'key2': None}
设置键的值: {'key1': 'default', 'key2': 'default'}
8.pop函数

pop函数用于从字典中移除指定键,并返回该键所对应的值,如下

dic={"key1":"hello","key2":"world"}
val=dic.pop("key1")
print("键key1的值:",val)
print("删除键key1后的字典:",dic)

执行结果如下,输出删除键后的字典

键key1的值: hello
删除键key1后的字典: {'key2': 'world'}
9.popitem函数

popitem函数用于从字典中删除最后一项,并以元组形式返回该项所对应的键和值,如下

dic={"key1":"hello","key2":"world"}
val=dic.popitem()
print("返回的项:",val)
print("删除最后一项的字典:",dic)

执行结果如下,输出删除的项和删除后的字典

返回的项: ('key2', 'world')
删除最后一项的字典: {'key1': 'hello'}
10.setdefault函数

setdefault函数用于设置键的默认值,若在字典中该键已经存在,则忽略设置;若不存在,则添加该键和值,如下

dic={"key1":"hello","key2":"world"}
dic.setdefault("key1",None)
print("设置key1的默认值:",dic)

dic.setdefault("key3","bigdata")
print("设置key3的默认值:",dic)

执行结果如下,输出字典

设置key1的默认值: {'key1': 'hello', 'key2': 'world'}
设置key3的默认值: {'key1': 'hello', 'key2': 'world', 'key3': 'bigdata'}
11.update函数

update函数用于将字典2的值更新到字典1。若字典2的值在字典1已经存在,则对字典1进行修改;若不存在,则对字典1进行添加,如下

dic1={"key1":"hello"}
dic2={"key1":"hello world"}
dic1.update(dic2)
print("修改key1的值:",dic1)

dic2={"key2":"hello python"}
dic1.update(dic2)
print("将key2更新到dic1:",dic1)

执行结果如下,输出更新后的字典

修改key1的值: {'key1': 'hello world'}
将key2更新到dic1: {'key1': 'hello world', 'key2': 'hello python'}

这篇文章到这里就结束了,希望能给小伙伴们一些帮助,喜欢的小伙伴们也可以三连支持一下博主!!!

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

8X_I

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

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

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

打赏作者

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

抵扣说明:

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

余额充值