python基础—dict字典

字典概述
1. 概述

字典本质上也是一个集合,是一个无序的集合,存储的时候以键值对(key-value)的方式来进行存储。它具有极快的查找速度

2. key的特性
  1. 字典中的key必须是唯一的
  2. key必须是不可变对象
    不可变对象:str,number,bool,None,tuple
    可变对象:list,dict,set
3. 字典的创建

字典的创建语法如下:

dict1 = {key:value,key2:value2,...,keyn:valuen}

创建一个成绩字典如下:

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
print(scoredict)
#{'张三': 89, '李四': 80, '王二': 20, '麻子': 67}
字典操作
1. 访问元素
dict1[key]
dict1.get(key)

使用上面两种方式都可以访问元素,使用get方法获取的时候,若key存在则返回value的值,当key不存在则返回None,不会报错;若使用key直接获取,当key不存在的时候会报错,如下:

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
print(scoredict.get("王二"))
print(scoredict.get("王三"))
print(scoredict["王二"])

运行结果如下:

20
None
20
2. 添加元素/更改元素
dict1[key] = value

注意:字典中key不能重复,一个key只能对应一个value,多次对一个key的value赋值,后面的值会把前面的值覆盖掉

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
scoredict["韩梅梅"] = 90
print(scoredict)
scoredict["张三"] = 75
print(scoredict)

运行结果如下:

{'张三': 89, '李四': 80, '王二': 20, '麻子': 67, '韩梅梅': 90}
{'张三': 75, '李四': 80, '王二': 20, '麻子': 67, '韩梅梅': 90}
3. 删除元素
dict1.pop(key)

根据key删除对应的键值对,并且将对应的value值返回

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
print(scoredict.pop("麻子"))
print(scoredict)

运行结果如下:

67
{'张三': 89, '李四': 80, '王二': 20}
字典的遍历

这里可以使用for循环来进行字典的遍历

1. 获取key键
#方法一:
for key in dict1:
    print(key)
#方法二:
for key in dict1.keys()
	print(key)
2. 获取value值
for value in dist1.values():
    print(value)
3. 同时获取键和值
for key,value in dict1.items():
    print(key,value)

注意:字典是无序的,在内存中存储是无序的,因此无法通过下标来获取值

扫描二维码关注公众号,回复: 6726492 查看本文章
scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
print("通过获取key键遍历字典:")
for key in scoredict:
    print("%s:%d"%(key,scoredict[key]),end=" ")
print()
print("通过同时获取键和值遍历字典:")
for key,value in scoredict.items():
    print("%s:%d"%(key,value),end=" ")

运行结果如下:

通过获取key键遍历字典:
张三:89 李四:80 王二:20 麻子:67 
通过同时获取键和值遍历字典:
张三:89 李四:80 王二:20 麻子:67 
dict与list的区别
1. 存储方式

字典存储的时候以键值对的方式存储,列表相当于只存储了字典中的key或value部分

2. 占用空间

dict需要占用大量的内存,内存浪费多,而list只相当于存储了字典的key或者value部分,并且数据是紧密排列的

3. 查询速度

dict的查找和插入的速度极快,不会随着key-value的增加而变慢,但是list在查找的时候需要从头向后挨个遍历元素,并且当数据量增大的时候,速度也会随着变慢

猜你喜欢

转载自blog.csdn.net/TaoismHuang/article/details/93329054