0
点赞
收藏
分享

微信扫一扫

Python基础学习-6.字典

6.字典

6.1字典的定义

字典:是python内置的数据结构之一,与列表一样是一个可变序列,以键值对的方式存储数据,字典是一个无序的序列,用{ }表示,冒号分割,每个键值对用逗号分割。根据key查找value所在的位置。

键必须唯一,值不必;值可以取任何数据类,但键必须是不可变,

语法:d={key1:value,key2:value...}

scores={'张三':99,'李四':67,'王五':89}

字典的特点:

1.字典中的所有元素都是key-value对,key不允许重复,value可以
2.字典元素无序
3.字典中的key必须是不可变对象
4.字典也可以根据需要动态伸缩
5.字典会浪费较多内存,使用空间换时间的数据结构
d={'name':'张一','name':'张二'}   #key不可以重复
print(d)

d={'name':'张一','nickname':'张一'}   #value可以重复
print(d)

字典中的内置方法:

序号 函数 描述
1 dict.clear() 删除字典内所有元素
2 dict.copy() 返回一个字典的浅复制
3 dict.fromkeys() 创建一个新字典,以序列seq中的元素做字典的键,val为字典所有键的对应初始值
4 dict.get(key,default=None) 返回指定键的值
5 key in dict 键在字典就返回True
6 dict.items() 以列表返回一个视图对象
7 dict.keys() 返回一个视图对象
8 dict.drtdefault(key,default=None) 和get()类似
9 dict.update(dict2) 把字典dict2的键/值对更新到dict中
10 dict.values() 返回一个视图对象
11 pop(key,[default]) 删除字典给定key所对应的值,返回值为被删除的值
12 popitem() 返回并删除字典中的最后一对键和值

6.2字典的创建

常用方式:

1.花括号

#使用大括号创建空字典
emptyDict={}
print(emptyDict)

#查字典的数量
print("Length:",len(emptyDict))
#查字典类型
print(type(emptyDict))

==========================》
{}
Length: 0
<class 'dict'>

2.使用内置函数dict()

#dict()
student=dict(name='lini',age=20)
print(student)

==========>
{'name': 'lini', 'age': 20}

6.3字典的获取

获取字典中的元素:使用[]或者get()方法

[]取值:[]如果字典中共不存在指定的key,则报keyError错

get()取值:如果字典中不存在指定key,则返回None,可以通过参数设置默认的value,以便指定的key不存在时返回

eg1:

#[]取值
tinydict={'Name':'Lini','Age':20,'Class':'First'}
print("tinydict['Name']:",tinydict['Name'])
print("tinydict['Age']:",tinydict['Age'])

#get()取值
print(tinydict.get('Name'))
print(tinydict.get('Age'))
#print("tinydict['abc']:",tinydict['Ailce'])  #不存在KeyError: 'Ailce'
#print(tinydict.get('math'))   #会提示None

=====================================>
tinydict['Name']: Lini
tinydict['Age']: 20
Lini
20

6.4字典的常用操作

key的判断:

in:指定key在字典中存在返回True

not in :指定key在字典中共不存在返回True

字典元素的删除:del

字典元素的新增:scores

scores={'张三':99,'小四':89,'王五':65}
print('张三' in scores)
print('张三' not in scores)

#删除键值对
del scores['张三']
#scores.clear()  #清空字典
print(scores)

#新增元素
scores['苏六']=78
print(scores)

#修改元素
scores['苏六']=100
print(scores)

=======================>
True
False
{'小四': 89, '王五': 65}
{'小四': 89, '王五': 65, '苏六': 78}
{'小四': 89, '王五': 65, '苏六': 100}

获取字典视图的三种方法:

keys():获取字典中所有key

values():获取字典中所有value

items():获取字典中所有key:value对

scores={'张三':99,'小四':89,'王五':65}
print('-------获取所有的key--------------')
keys=scores.keys()
print(keys)
print(type(keys))
print(list(keys))   #将所有key组成的视图转换成列表

print('-------获取所有的value--------------')
values=scores.values()
print(values)
print(type(values))
print(list(values))

print('-------获取所有的key-value对--------------')
items=scores.items()
print(items)
print(list(items))  #转换之后的列表元素由元组组成

==============================================>
-------获取所有的key--------------
dict_keys(['张三', '小四', '王五'])
<class 'dict_keys'>
['张三', '小四', '王五']
-------获取所有的value--------------
dict_values([99, 89, 65])
<class 'dict_values'>
[99, 89, 65]
-------获取所有的key-value对--------------
dict_items([('张三', 99), ('小四', 89), ('王五', 65)])
[('张三', 99), ('小四', 89), ('王五', 65)]

字典元素的遍历

scores={'张四':69,'小五':90,'陈六':89}
#字典元素的遍历
for item in scores:
    print(item,scores[item],scores.get(item))        
==============================》
张四 69 69
小五 90 90
陈六 89 89

字典生成式

内置函数zip():用于将可迭代的对象作为参数,并将对象中对应的元素打包成一个元组,然后返回又这些元组组成的列表

items=['red','green','blue']
sizes=[96,89,80,100,130]
d={item.upper():sizes   for item,sizes in zip(items,sizes)}  #upper把字母变成大写
print(d)

==================》
{'RED': 96, 'GREEN': 89, 'BLUE': 80}

6.5总结

字典的创建:使用{}花括号,内置函数dict(),字典生成式

常用操作

1.获取value:字典名[key],字典名.get(key)

2.删除key-value对,del字典名[key]

3.修改/新增,字典名[key]=value

4.in /not in

举报

相关推荐

0 条评论