Python字典知识详解,操作详解

目录

1、什么是字典

2、字典的创建

2.1  字典的创建:

2.2  字典的特点:

 3、字典的查询操作

3.1  采用中括号[]进行字典的查询

3.2  采用get()方法进行字典的查询 

3.3  字典元素的遍历

4、字典元素的增,删,该操作

4.1  前言:key键的判断:

4.2  字典元素增加:

4.3  字典元素删除:

4.4  字典元素更改:

4.5  清空字典clear():

4.6  删除字典del

 5、获取字典视图的三个方法:

6、字典推导式


1、什么是字典

  • Python内置的数据结构之一,与列表一样是一个可变序列
  • 字典与列表的区别:
字典与列表对比条件字典列表
存储元素多个多对
有无序列无序有序

(1)字典无序序列:通过hash()计算键的存储位置所以字典是无序的,并不是按顺序排列

(2)列表中的元素是一个一个的,字典中的元素是一对一对

如:

列表:lst1=[1,2,3,4,5,6]

字典:scores={‘张三’:100,‘李四’:98,‘王五’,45}

  • 字典是以键值对的方式存储数据,字典是一个无序的序列

注:键值:冒号之前叫建,冒号之后叫值


2、字典的创建

2.1  字典的创建:

方式1:使用花括号

方式2:使用内置函数dict()

#方法1
scores={'张三':90,'李四':50,'王五':45}
print(scores)#{'张三': 90, '李四': 50, '王五': 45}
print(type(scores))#<class 'dict'>

#方法2
student=dict(name='张三',age=20)
print(student)#{'name': '张三', 'age': 20}
print(type(student))#<class 'dict'>

2.2  字典的特点:

  • 字典中的所以元素都是一对,key不允许重复,value可以重复
scores={'张三':90,'张三':50}
print(scores)#{'张三': 50}  注:字典中键不可重复

scores={'张三':90,'李四':90}
print(scores)#{'张三': 90, '李四': 90}  注:字典中值可重复
  • 字典中的元素是无序的
  • 字典中的key必须是不可变对象
  • 字典会浪费较大的内存,是一种使用空间换时间的数据结构

 3、字典的查询操作

获取字典元素方式举例
[]举例:scores[‘张三’]
get()方法举例:scores.get('张三')

3.1  采用中括号[]进行字典的查询

scores={'张三':90,'李四':50,'王五':45}
print(scores)#{'张三': 90, '李四': 50, '王五': 45}
print(type(scores))#<class 'dict'>

print(scores['张三'])#90
print(scores.get('张三'))#90

3.2  采用get()方法进行字典的查询 

scores={'张三':90,'李四':50,'王五':45}
print(scores)#{'张三': 90, '李四': 50, '王五': 45}
print(type(scores))#<class 'dict'>

print(scores['张三'])#90
print(scores.get('张三'))#90

#print(scores['陈六'])#报错:KeyError: '陈六'

print(scores.get('陈六'))#None
print(scores.get('陈六','没有此键'))#没有此键

3.3  字典元素的遍历

scores={'张三':90,'李四':50,'王五':45}
for item in scores:
    print(item,scores[item],scores.get(item))
#运行结果:
'''
张三 90 90
李四 50 50
王五 45 45
'''

4、字典元素的增,删,该操作

4.1  前言:key键的判断:

scores={'张三':90,'李四':50,'王五':45}

#key的判断
print('张三' in scores)#True
print('张三' not in scores)#False

4.2  字典元素增加:

scores={'张三':90,'李四':50,'王五':45}

scores['陈六']=10
print(scores)#{'张三': 90, '李四': 50, '王五': 45, '陈六': 10}

4.3  字典元素删除:

scores={'张三':90,'李四':50,'王五':45}

del scores['李四']
print(scores)#{'张三': 90, '王五': 45}

4.4  字典元素更改:

scores={'张三':90,'李四':50,'王五':45}
print(scores)#{'张三': 90, '李四': 50, '王五': 45}

scores['李四']=80
print(scores)#{'张三': 90, '李四': 80, '王五': 45}

4.5  清空字典clear():

scores={'张三':90,'李四':50,'王五':45}

scores.clear()
print(scores)#{}

4.6  删除字典del

scores={'张三':90,'李四':50,'王五':45}
print(scores)#{'张三': 90, '李四': 50, '王五': 45}

del scores
print(scores)#NameError: name 'scores' is not defined

 5、获取字典视图的三个方法:

获取字典视图方法作用
keys()获取字典中所以key(将其所有key组成列表)
values()获取字典中所有value(将其所有value组成列表)
items()获取字典中所有key,value对(将其所有items组成列表)
 
scores={'张三':90,'李四':50,'王五':45}
key=scores.keys()
print(key,type(key))
print(list(key))
#dict_keys(['张三', '李四', '王五']) <class 'dict_keys'>

value=scores.values()
print(value,type(value))
print(list(value))
#dict_values([90, 50, 45]) 'dict_values'>

item=scores.items()
print(item,type(item))
print(list(item))
#dict_items([('张三', 90), ('李四', 50), ('王五', 45)]) <class 'dict_items'>

6、字典推导式

例题:以items为键prices为值构建字典

items=['Fruits','Books','Others']
prices=[96,78,58]

注:需要使用内置函数zip()

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

items=['Fruits','Books','Others']
prices=[96,78,58]

d={item:price for item,price in zip(items,prices)}
print(d)#{'Fruits': 96, 'Books': 78, 'Others': 58}

d={item.upper():price for item,price in zip(items,prices)}
print(d)#{'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 58}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值