Python字典使用方法大全

Python字典使用方法大全

python中还有一种数据结构特别重要,就是字典。字典是键(key)-值(value)一一对应组成。这样的键-值组合叫做项。键与值之间用‘:’分隔,项之间用‘,’分隔。
字典是用花括号‘{}’表示。说到这,要区别一下,列表用‘[ ]’表示,元组用‘()’表示。
首先,我们来看看如何创建字典。

#这里用电话簿实例
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
A = phonebook['A']
print(A)

#字典的创建也可以利用函数dict
items = [('name', 'Lisa'), ['age', 23]]
d = dict(items)
print(d['name'])
print(d['age'])
#当然也可以简化成这样
d = dict(name='lisa', age=23)
print(d['name'])
print(d['age'])

运行结果如图所示:
在这里插入图片描述
下面来介绍字典的基本操作(5种):
字典的基本操作有点与序列的方法相似。

#关于字典的基本操作
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
#1.长度 len 返回项的个数 len(obj)
print(len(phonebook))

#2.返回键(key)对应的值(value) obj[key]
B = phonebook['B']
print(B)

#3.键值关联 这种方法可以改变其键对应的值
C = '22'
phonebook['C'] = C
print(phonebook['C'])

#4.删除操作 del obj[key] 删除键为key的项
del phonebook['C']
print(phonebook)

#5.成员资格查找 key in obj
if 'A' in phonebook:
    print("phonebook has 'A'")

运行结果如图所示:
在这里插入图片描述
当然,字典还有很多其他的方法。下面来进行一个概述:
1.clear方法
直接将其字典内容清空,返回一个空的字典。

phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print('原字典为:', phonebook)
phonebook.clear()
print('clear之后:', phonebook)

运行结果如图所示:
在这里插入图片描述
2.copy方法
很明显,这个直接就是对字典进行一个拷贝。但得注意,这里的拷贝只是浅拷贝。

phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}

phonebook2 = phonebook.copy()

print('copy之后,phonebook2为:', phonebook2)

#注意啦,这个copy只是浅复制

运行结果如图所示:
在这里插入图片描述
3.fromkeys方法
fromkeys方法可以创建一个新字典,可以只创建新的键,但这样默认的值为None。
当然,你也可以自定义键所对应的值,同样,设置的也是默认值。

#用fromkeys方法创建一个新字典 这样创建的字典默认值为None,但也可以自己定义
A = dict.fromkeys(['name', 'age'])
print(A)

B = dict.fromkeys(['name', 'age'], '(unknown)')
print(B)

运行结果如图所示:
在这里插入图片描述
4.setdefault方法
setdefault方法与fromkeys方法有点类似。就相当于设置默认值。但这种方法更适合设置默认值。

#setdafult方法 给字典中添加指定的键-值对应关系,但值为默认值,可以进行更改替换。有点与get方法类似。
#我们先创建一个新空字典
T = {}
T.setdefault('num', '(unknown)')
print(T)
#这里对num的值进行了更改。
T['num'] = '12333'
T.setdefault('num', '(unknown)')
print(T)

运行结果如图所示:
在这里插入图片描述
5.get方法
get方法是对字典访问进行了拓展,提供了一种更宽松的环境。
如果直接进行键的访问,这时键要是不存在,程序会进行报错。

#如果直接访问字典中不存在的键,就会报错
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook['D'])

在这里插入图片描述
但使用get方法进行查找,就算键不存在,也不会报错。只会返回一个None值。

phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}

#但使用get方法就只会返回None
T = phonebook.get('D')
print(T)
#同样get方法与普通查找相同
print(phonebook.get('A'))

运行结果如图所示:
在这里插入图片描述
6.keys方法
keys方法,就是将字典中所有的键(key)整合到一个列表中去并返回。

#keys方法以列表的方式返回字典所有的键(key)
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook.keys())

运行结果如图所示:
在这里插入图片描述
7.values方法
values方法,将字典中所有的值(value)整合到一个列表中去并返回。

#方法values 与方法key 相对,以列表的方式返回字典的值(value)
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook.values())

运行结果如图所示:
在这里插入图片描述
8.items方法
items方法,将字典中所有的项(item)整合到一个列表中并返回。

#方法items返回包含列表所有字典项的列表
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook.items())

运行结果如图所示:
在这里插入图片描述
这里的三种方法,keys,values,items;分别对应了字典中的键(key),(value),(item),都是将其字典中对应的内容以列表的形式进行整合并返回。
9.pop方法
pop方法,删除键对应的项,同时返回该键对应的值。如果不特别指明键,那么删除的将会是最后一个键。

#pop方法 删除键对应的项,同时返回该键对应的值
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print('原来的phonebook为:', phonebook)
#删除键为’A‘的项,同时返回该键对应的值
T = phonebook.pop('A')
print(T)
print('现在的phonebook为:', phonebook)

运行结果如图所示:
在这里插入图片描述
10.popitem方法
popitem方法是删除字典中最后一项。
有些书本上写的是随机弹出,但实践了一下,弹出的始终是最后一个项。

#popitem方法,就像这名字一样,弹出最后一个项嘛。但有些书上写着随机弹出,实践过后,还是弹出最后一个。
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667', 'D': '28288288', 'E': '37377737'}
T = phonebook.popitem()
print(T)

运行结果如图所示:
在这里插入图片描述
11.update方法
update方法是对字典内容的一个更新方法。
可以添加新的项,也可对已有的项,进行替换。

#方法update 使用字典中所包含的值来进行数据的更新,也可直接给字典添加新的项。
T = {
    'A': 'Lisa',
    'B': 'Six',
    'C': 'DD'
}

P = {
    'D': 'test',#新的项
    'A': 'Peter'#已有键'A' 进行数据更换
}

T.update(P)

print(T)

运行结果如图所示:
在这里插入图片描述

希望对您有所帮助,谢谢~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值