一、什么是字典
Python 内置的另一个有用的数据类型是字典,您可以将其视为真正的英语词典,它提供了一种将英语单词映射到其解释的方法。
列表List提供了一种映射机制,该机制将索引号隐式映射到存储的项。
字典提供了具有键和值对的显式映射机制,要求键是唯一的(在一个字典中)。
字典键可以是任何不可变类型;字符串和数字都可以是键。
字典使用大括号编写,具有键和值,可以使用键名进行引用。
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",}
print(fruits["cherry"])
执行结果:
sweet
(1)字典项目是有序的、可更改的,并且不允许重复。
1、有序:
当我们说字典是有序的,这就意味着项目有一个定义的顺序,并且该顺序不会改变。
2、可更改:
字典是可变的,这意味着我们可以在创建字典后更改、添加或者删除项目。
3、不允许重复:
字典不能有两个具有相同键的项目
例如:
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",
"orange":"sweet"}
print(fruits["orange"])
执行结果:
sweet #而不是sour
(2)字典中的键可以是任何不可变类型:字符串、数字、布尔值都可以是键。字典中的值可以是任何数据类型。
cooper = {
"brand":"BMW",
123:"80km",
True:True,
"colors":["red","black","white","blue"]
}
print(cooper[123])
print(cooper[True])
print(cooper["colors"])
执行结果:
80km
True
['red', 'black', 'white', 'blue']
二、使用字典
2.1、获取字典长度
要知道字典有多少项,可以使用len()函数
print(len(cooper))
2.2、访问字典中的值
如上述例子所示,可以通过引用字典的键名称(方括号内)来访问字典的项,和访问列表项的方式相同,只不过是将键作为索引。
除此之外,还可以调用get()函数来获取字典的值。
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",}
taste = fruits.get("orange")
print(taste)
执行结果:
sour
2.3、获取字典的键
keys()方法可以返回字典中的所有键的列表。键列表是字典的视图,这意味着对字典所做的任何更改都将反映到键列表中。
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",}
names = fruits.keys()
print(names)
fruits["fig"] = "delicious"
print(names)
dict_keys(['apple', 'orange', 'cherry'])
dict_keys(['apple', 'orange', 'cherry', 'fig'])
2.4、获取字典的值列表
values()方法将返回字典中所有值的列表。与keys()类似,值列表是字典的视图,这意味着对字典所做的任何更改都将反映在值列表中。
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",}
tastes = fruits.values()
print(tastes)
fruits["fig"] = "delicious"
print(tastes)
dict_values(['crispy', 'sour', 'sweet'])
dict_values(['crispy', 'sour', 'sweet', 'delicious'])
2.5、获取字典的键值对列表
items()方法将返回字典中的每个项目的键值对列表。返回的列表是字典项的视图,这意味着对字典所做的任何更改都将反映在项列表中。
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",}
items = fruits.items()
print(items)
fruits["orange"] = "sweet"
fruits["fig"] = "delicious"
print(items)
dict_items([('apple', 'crispy'), ('orange', 'sour'), ('cherry', 'sweet')])
dict_items([('apple', 'crispy'), ('orange', 'sweet'), ('cherry', 'sweet'), ('fig', 'delicious')])
2.6、检查键是否存在
要确定字典中是否存在指定的键,使用in关键字
fruits = {
"apple":"crispy",
"orange":"sour",
"cherry":"sweet",}
if "cherry" in fruits:
print("cherry",fruits["cherry"])
cherry sweet