python之字典相关知识
1、字典的创建
字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。字典的每个键值 key:value 对用冒号分割,键值对之间用逗号分割
示例
# 创建并打印字典
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict)
运行结果:
说明:
①字典和列表一样能够存储多个数据,列表中找某个元素时是根据下标进行的,而字典不能使用下标取值,字典中查找某个元素时是根据键的名字进行的。
②键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
③值可以取任何数据类型,但键必须是不可变的,可以用数字,字符串或元组充当,但用列表不行。
2、根据键访问字典里的值
可以通过在方括号内引用其键名来访问字典的值
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict["name"])
运行结果:
若访问不存在的键,则会报错
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict["score"])
运行结果:
还可以使用 get( ) 方法返回具有指定键的项目值
语法如下:
dictionary.get(keyname, value)
参数含义:
keyname:必选参数。要从中返回值的项目的键名
value:可选参数。若指定的键不存在,可以设置返回一个值。默认值 None
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict.get("name")) # 获取 "name" 项的值
print(aDict.get("score",0)) # 返回不存在的项目的值,设置返回值为 0
print(aDict.get("score"))
运行结果:
3、字典的常见操作
3.1 查找元素
如上所讲,可以使用键名查找,也可以使用 get( ) 方法,这里不再赘述
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict["name"])
print(aDict.get("age"))
运行结果:
3.2 修改元素
可以通过引用键的名字来更改特定项的值
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
newAge = input("请输入新的年龄:")
aDict["age"] = int(newAge)
print(f"修改后的age为{aDict['age']}")
运行结果:
3.3 添加元素
可以通过使用新的索引键并为其赋值,将项目添加到字典中。即如果在使用 变量名[“键名”] = 数据 ,这个"键名"在字典中不存在时就会新增这个元素
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
aDict["score"] = 85.5
print("添加的成绩为:{}".format(aDict["score"]))
print(aDict)
运行结果:
3.4 删除元素
有几种方法可以从字典中删除项目
• del 关键字
del 关键字可以删除具有指定键名的项目,也可以完全删除字典
示例1
aDict = {"name":"Cindy","age":10,"sex":"female"}
del aDict["age"] # 删除"age"项
print(aDict)
运行结果:
示例2
aDict = {"name":"Cindy","age":10,"sex":"female"}
del aDict # 删除整个字典
print(aDict) # 会报错,因为 "aDict" 不再存在
运行结果:
• clear( ) 方法
clear()方法会清空整个字典
语法如下:
dictionary.clear()
无参数
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
aDict.clear() # 删除字典中所有的元素
print(aDict)
运行结果:
• pop( ) 方法
pop() 方法会删除拥有指定键的元素,被删除项目的值是该方法的返回值
语法如下:
dictionary.pop(keyname, defaultvalue)
参数含义:
keyname:必选参数。需要删除项目的键名
defaultvalue :可选参数。返回值。如果未指定此参数,且指定的键不存在,则会引发错误
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
x = aDict.pop("name") # 从字典中删除 "name"
print(aDict)
print(x) # 被删除项目的值是 pop() 方法的返回值
运行结果:
• popitem( ) 方法
popitem() 方法删除最后插入字典中的项目。在 3.7 之前的版本中,popitem() 方法删除一个随机项。该方法的返回值是以元组的形式的被删除的项目
语法如下:
dictionary.popitem()
无参数
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
x = aDict.popitem() # 从字典中删除最后一个项目
print(aDict)
print(x) # 被删除项目的值是 popitem() 方法的返回值
运行结果:
4、字典的常见方法
4.1 len( )
len() 方法用于确定字典中键值对的数量
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(len(aDict))
运行结果:
4.2 keys( )
keys() 方法返回一个包含字典所以键的列表,该列表会反映对字典的任何改变
语法如下:
dictionary.keys()
无参数
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict.keys()) # 返回键
运行结果:
4.3 values( )
values() 方法返回一个包含字典中所有值的列表,该列表会反映对字典的任何改变
语法如下:
dictionary.values()
无参数
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict.values()) # 返回值
运行结果:
4.4 items( )
items() 方法返回返回一个包含所有键值对(键,值)元组的列表,该列表会反映对字典的任何改变
语法如下:
dictionary.items()
无参数
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
print(aDict.items()) # 返回字典的键值对
运行结果:
5、字典的遍历
5.1 遍历字典的键
循环遍历字典时,返回值是字典的键
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
for key in aDict:
print(key)
运行结果:
也可以用keys() 方法
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
for key in aDict.keys():
print(key)
运行结果:
5.2 遍历字典的值
可以通过遍历键访问字典中的所有值
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
for key in aDict:
print(aDict[key])
运行结果:
也可以通过使用values()方法
示例
aDict = {"name":"Cindy","age":10,"sex":"female"}
for value in aDict.values():
print(value)
运行结果:
5.3 遍历字典的键和值
通过使用 items()遍历键和值
示例1
aDict = {"name":"Cindy","age":10,"sex":"female"}
for item in aDict.items():
print(item)
运行结果:
示例2
aDict = {"name":"Cindy","age":10,"sex":"female"}
for key,value in aDict.items():
print(key,value)
运行结果: