python数据类型之字典

本文深入讲解了Python中字典的概念,包括其结构、创建方法、特性、操作符、遍历方式以及增删改查等常见操作,是Python编程学习者不可多得的参考资料。

什么是字典

  字典包含了一个索引的集合,称为键和值的集合。一一对应,这种关系称为键值对或称为项。简单地说,字典就是用花括号包裹的键值对的集合。每个键值对用冒号“:”分割,每对之间用逗号“,”分割
  键必须是唯一的,不能重复,还必须是不可变的数据类型,例如:字符串、数字、或元组。值可以是任何数据类型。
  字典是一个无序的数据集合,通常输出顺序和定义顺序不一样
Python语言的字典就是一种映射

创建字典

(1)定义一个空字典——dict = {}

(2)定义一个字典——键必须是唯一的,不能重复,还必须是不可变的数据类型,例如:字符串、数字、或元组。值可以是任何数据类型
输入:dict = {‘cai’:18,12:[1,3,5],(4,‘westos’,18):‘westos’}
输出:print(dict,type(dict))
结果:{‘cai’: 18, 12: [1, 3, 5], (4, ‘westos’, 18): ‘westos’} <class ‘dict’>

(3)工厂函数生成字典
d = dict()
print(d,type(d))
输出:{} <class ‘dict’>

dict1 = dict(a=1,b=2)
print(dict1,type(dict1))
输出:{‘a’: 1, ‘b’: 2} <class ‘dict’>

(4)生成新的字典,所有key的value值一样
{}.fromkeys({‘1’,‘2’},‘000000’)

字典的特性

(1)成员操作符(针对key来说)
‘元素’ in dirt:元素在字典中
‘元素’ not in dirt :元素不在字典中

(2)for 循环
1.第一种方式
默认遍历字典中的key值

d = {'a':1,'b':2}
for i in d:
    print(i)

结果为:a b
想要遍历value值则:

d = {'a':1,'b':2}

for i in d:
    print(d[i])

结果为:1 2
2.第二种方式——items()方法

d = {'a':1,'b':2}

for i in d.items():
    print(i)
结果为:('a', 1)    ('b', 2)  items()将其转化为元组形式

d = {'a':1,'b':2}

for k,v in d.items():
    print(k,v)

结果为:a 1   b 2   将元组进行分解

字典不支持索引,切片,重复。因为key值是唯一的;仅仅支持成员操作符和for循环

字典的增删改除

(1)字典的增加
第一种方法,直接使用{}
增加一个元素
此时如果key值存在,则更新对应的value值
如果key值不存在,添加key-value值对
输入:

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
dirt['cai'] = 20
print(dirt)
dirt['a'] = 'redhat'
print(dirt)

结果:

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 20, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 20, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 'redhat'}

第二种方法:使用setdefault添加key值
如果key值存在,不做修改
如果key值不存在,添加对应的key-value
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
dirt.setdefault('cai',20)
print(dirt)
dirt.setdefault('a','redhat')
print(dirt)

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 'redhat'}

增加多个元素——update
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
a = {'a':1,'b':[1,2,3]}
dirt.update(a)
print(dirt)
dirt.update(c=5,d='redhat')
print(dirt)

结果

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 1, 'b': [1, 2, 3]}
{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos', 'a': 1, 'b': [1, 2, 3], 'c': 5, 'd': 'redhat'}

(2)字典的删除

第一种方式:使用关键字del删除key
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
del dirt['cai']
print(dirt)

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{12: [1, 3, 5], (4, 'westos', 18): 'westos'}

第二种方式:pop删除指定的key的key-value
#如果key存在,删除,并返回删除key对应的value
#如果key不存在,报错
输入
dirt = {‘cai’:18,12:[1,3,5],(4,‘westos’,18):‘westos’}
print(dirt)
item = dirt.pop(‘cai’)
print(dirt)
print(item)

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{12: [1, 3, 5], (4, 'westos', 18): 'westos'}
18

第三种方式:popitem删除最后一个key-value值
返回值是最后一个key-value值,也是一个字典
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
item = dirt.popitem()
print(item)
print(dirt)

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
((4, 'westos', 18), 'westos')
{'cai': 18, 12: [1, 3, 5]}

第四种方式:清空字典clear
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
dirt.clear()
print(dirt)

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
{}

(3)字典的查看

第一种:查看字典的key值
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.keys())

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
dict_keys(['cai', 12, (4, 'westos', 18)])

第二种:查看字典的value值
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.values())

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
dict_values([18, [1, 3, 5], 'westos'])

第三种:查看字典的key-value值对
输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.items())

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
dict_items([('cai', 18), (12, [1, 3, 5]), ((4, 'westos', 18), 'westos')])

第四种:查看key的value值
get方法获取指定key值对应的value值
如果key值存在,返回对应的value值
如果key值不存在,默认返回None,如果需要指定返回值,传值即可

输入

dirt = {'cai':18,12:[1,3,5],(4,'westos',18):'westos'}
print(dirt)
print(dirt.get('cai'))
print(dirt.get(5))
print(dirt.get(5,'key not exit'))

输出

{'cai': 18, 12: [1, 3, 5], (4, 'westos', 18): 'westos'}
18
None
key not exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值