栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

字典概念以及操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字典概念以及操作

字典的概念:

无序的、可变的、键值对 集合

字典的定义方式:

一共有两种定义方法:

1. {key1: value1, key2: value2}

2.fromkeys函数进行调用——这一方法又可分为类调用(class)和对象调用(value)

类调用:(红色字体是和对象调用的区别之处)

语法:dict.fromkeys(iterable, value)#前面的可迭代对象逐个作为关键词key,每个键所对应的值都相同,都是后面的value

d = dict.fromkeys('abc', 2)
print(d)#输出:{'a': 2, 'b': 2, 'c': 2}
d2 = dict.fromkeys('abc', [1,2,3])
print(d2)#{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [1, 2, 3]}

字典的存在意义:

便于查询相应的值,提高查询效率。

字典的常用操作:

增删改查以及计算、判定

dic = {'name':'jiang', 'age':22}
dic['sex'] = 'male'
#增加
print(dic)#输出:{'name': 'jiang', 'age': 22, 'sex': 'male'}
#删除
del dic['age']
print(dic)#输出:{'name': 'jiang', 'sex': 'male'}
#修改
dic['name'] = 'fan'
print(dic)#{'name': 'fan', 'sex': 'male'}
​​​​​​​#查询
print(dic['name'])#输出:fan

删除操作:

1.del 内置函数

语法:del dict[' key ']

2.pop函数

语法:dic.pop(key)

结果:返回指定关键词的值

eg:

dic = {'name':'jiang', 'age':22, 'sex':'male'}
v = dic.pop('sex')
print(v,dic)#输出:male {'name': 'jiang', 'age': 22}

3.popitem()函数

语法:

作用:删除按照最后一个键对,并将删除结果以元组的形式返回。

eg:

dic = {'2':'jiang', '3':'male', '1':22}
v = dic.popitem()
print(v)#输出:('1', 22)

4. clear函数

作用:清除内容,但是字典还在,变成了空字典

dic = {'2':'jiang', '3':'male', '1':22}
v = dic.clear()
print(v)#输出:None
print(dic)#输出:{}

字典的修改:(只能改值,不能改key)

1.修改单个值,dic[' key '] = value

2.批量修改键值对,

dic = {'name':'jiang', 'sex':'male', 'age':22}
dic.update({'age': 18, 'major': 'sta'})
print(dic)#输出:{'name': 'jiang', 'sex': 'male', 'age': 18, 'major': 'sta'}

#如果有相同的key,那就直接修改value,如果没有key,那就增加新键对

字典的查询:

1.获取单个值  2.获取所有值 3.获得所有关键词 4.获取所有键值对  5.遍历

1.获取单个值:

dic = {'name':'jiang', 'sex':'male', 'age':22}
v = dic['name']
print(v)

2.获取所有值:dic.values()

3.获取所有关键词:dic.keys()

4.获取所有键值对:dic.items()

要注意的一点是:2-4这三个函数所返回的结果都是一种称为:“ 字典视图对象 ”的东西,无法根据下标进行索引。

dic = {'name':'jiang', 'sex':'male', 'age':22, 'address':'hubei'}
keys = dic.keys()
values = dic.values()
items = dic.items()
print(keys)#输出:dict_keys(['name', 'sex', 'age', 'address'])
print(values)#输出:dict_values(['jiang', 'male', 22, 'hubei'])
print(items)#输出:dict_items([('name', 'jiang'), ('sex', 'male'), ('age', 22), ('address', 'hubei')])
print(keys[0])#报错:TypeError: 'dict_keys' object is not subscriptable

#与python2.x版本相比,3.x版本得到的结果都是视图对象,不能用下标索引,需要转化成列表或者元组后才能操作。
#与2.x版本相比优势在于,即使先进行语句keys = dic.keys()操作后,再对dic字典进行修改,修改后的关键词依旧会链接到keys中,而2.x版本中的keys只是一个单纯的结果;3.x版本中,keys链接到dic这个字典中,dic进行变化,keys也会进行变化。
#处理方法:将视图对象转化为 列表、元组,再进行相应的操作
dic = {'name':'jiang', 'sex':'male', 'age':22}
items = dic.items()
print(items)#输出:dict_items([('name', 'jiang'), ('sex', 'male'), ('age', 22)])
dic.update({'age':18, 'address':'hubei'})

items = list(items)
print(items)#输出:[('name', 'jiang'), ('sex', 'male'), ('age', 18), ('address', 'hubei')],此时也将修改后的结果同步链接到items中,然后以列表的方式打印出来
print(items[0])#输出:('name', 'jiang')

列表的遍历:

遍历的方式主要有两种:一种是按照键(keys)进行遍历,进而得到值;另一种是根据键值对(keys, values)进行遍历

注意:视图对象也是可迭代对象,因此可以进行遍历

eg:

dic = {'name':'jiang', 'sex':'male', 'age':22}
keys = dic.keys()

#遍历关键词key
items = dic.items()
for key in keys:
    print(key)
'''
name
sex
age
'''
#遍历键值对之方式1:直接遍历元组
for item in items:
    print(item)
'''
('name', 'jiang')
('sex', 'male')
('age', 22)
'''
print()
#遍历键值对之方式2:元组拆包遍历,该方法更为常用
for x,y in items:
    print(x,y)
'''
name jiang
sex male
age 22
'''

字典的计算:计算键值对的个数——len函数

字典的判定: in 和not in;判定的对象是判断有无 key

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号