人话学Python-字典
一:字典的定义
1:概念
字典在Python中的用处和用法和C++中的map类型类似,都是通过“键值对”的方式存储数据和数据之间的关系。
在字典当中,总有一个key对应一个value,两个数据所组成的数据类型就是字典。
2:用法
和列表不同,字典使用花括号{}定义,其中,每一个字典元素之间用逗号隔开,而表示的键值对用冒号连接。
也可以使用相应函数进行字典的创建。
dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}
empty_dic = {}
info = dict()
二:字典的相关操作
1:创建字典和打印整体
dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}
print(dic) # 整体打印
print(len(dic)) # 字典长度
print(type(dict)) # 字典的类型
>>>{'name': 'WinterJujube', 'age': 18, 'number': 12345678900}
>>>3
>>><class 'type'>
2:访问字典值
通过读取字典的键可以输出这个键所对应的值。需要注意,如果输出的键在字典中并不存在不会自动创建新的键值对。
dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}
print(dic["name"])
print(dic["age"])
>>>WinterJujube
>>>18
3:删除字典元素
和访问字典类似,可以通过删除键的形式删除相对应的值。
使用del语句可以进行删除。
dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}
del dic["name"]
print(dic)
>>>{'age': 18, 'number': 12345678900}
如果需要删除整个字典有两种方式
使用clear()进行删除的字典会保留一个空字典,而使用del语句删除的字典则不会再存在。
dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}
dic.clear()
print(dic)
del dic
print(dic)
>>>Traceback (most recent call last):
>>> File "D:\pythonProject1\Study.py", line 9, in <module>
>>> print(dic)
>>> ^^^
>>>NameError: name 'dic' is not defined. Did you mean: 'dir'?
>>>{}
可以看到编译器提示无法找到dic字典。
4:注意
如果一个键被多次赋值,后面添加的值会覆盖之前的值。也就是只保留最后一次操作留下的值。
字典的键是一个不可变量,也就是说可以是字符串、数字、元组,但是不能是列表
三:字典相关函数和方法
dic = {"name": "WinterJujube", "age": 18, "number": 12345678900, "like": "Skadi"}
# len()返回字典长度
print("length:", len(dic))
# str()将字典转化为字符串形式
print(str(dic))
# copy()创建一个原字典的复制
print("dic copy:", dic.copy())
# fromkeys()创建一个新字典,键来源于指定字典,值来自初始化的值
print("New dict:", dict.fromkeys(dic, 10))
# get()返回键对应的值
print("get number:", dic.get("number"))
# get()返回键对应的值,如果键不存在返回指定数字
print("get sex, if don't exist print 0:", dic.get("sex", 0))
# setdefault()相当与get(),但是如果键不存在就新建一个键值对
print("get sex, if don't exist add new item with value male:", dic.setdefault("sex", "male"))
print("dict after upon:", dic)
# in判断键是否存在
if "name" in dic:
print(True)
else:
print(False)
# 以下三种都是输出全部的键值对、键或者值
print(dic.items())
print(dic.keys())
print(dic.values())
# pop()删除键
print("delete key and value:", dic.pop("sex"))
print("after upon:", dic)
# popitem()删除最后一个键值对
print("delete last item:", dic.popitem())
print("after upon:", dic)
值得注意的一点是,使用get()方法和直接使用引索进行访问不同的是,直接使用引索,如果对应的键不存在,会报错。而get()方法如果键不存在会又返回值。
下面是上面程序的结果:
>>>length: 4
>>>{'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi'}
>>>dic copy: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi'}
>>>New dict: {'name': 10, 'age': 10, 'number': 10, 'like': 10}
>>>get number: 12345678900
>>>get sex, if don't exist print 0: 0
>>>get sex, if don't exist add new item with value male: male
>>>dict after upon: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi', 'sex': 'male'}
>>>True
>>>dict_items([('name', 'WinterJujube'), ('age', 18), ('number', 12345678900), ('like', 'Skadi'), ('sex', 'male')])
>>>dict_keys(['name', 'age', 'number', 'like', 'sex'])
>>>dict_values(['WinterJujube', 18, 12345678900, 'Skadi', 'male'])
>>>delete key and value: male
>>>after upon: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi'}
>>>delete last item: ('like', 'Skadi')
>>>after upon: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900}
原文地址:https://blog.csdn.net/WinterXJujube/article/details/142440652
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!