字典概念以及操作

字典的概念:

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

字典的定义方式:

一共有两种定义方法:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值