【新人系列】Python 入门(九):数据结构 - 中
✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog
📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html
📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~
📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~
❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪
4. dict 字典
4.1 字典定义
Python 字典(dict)是 Python 中唯一的映射类型,是一种无序的、可变的序列,它的元素以 “键值对(key-value)” 的形式存储。
字典中将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为 “键值对”。
创建字典
- 使用 { } 创建字典
使用 { } 创建字典的语法格式如下:
dictname = {'key': 'value1', 'key2': 'value2', ..., 'keyn': 'valuen'}
由于字典中每个元素都包含两部分,分别是键(key)和值(value)。因此在创建字典时,键和值之间使用冒号 : 分隔,相邻元素之间使用逗号 , 分隔,所有元素放在大括号 { } 中。
alien_0 = {'color': 'green','points': 5}
print(alien_0['color']) # green
- 通过 fromkeys( ) 方法创建字典
Python 中,还可以使用 dict 字典类型提供的 fromkeys( ) 方法创建带有默认值的字典,具体格式为:
dictname = dict.fromkeys(list, value=None)
其中,list 参数表示字典中所有键的列表(list);value 参数表示默认值,如果不写,则为空值 None。
knowledge = ['语文', '数学', '英语']
scores = dict.fromkeys(knowledge)
print(scores) # {'语文': None, '数学': None, '英语': None}
scores = dict.fromkeys(knowledge, 90)
print(scores) # {'语文': 90, '数学': 90, '英语': 90}
- 通过 dict( ) 映射函数创建字典
格式 1:
dict1 = dict(key1="test1", key2="test2", key3="test3")
格式 2:
demo = [('two',2), ('one',1), ('three',3)]
dict2 = dict(demo)
格式 3:
keys = ['one', 'two', 'three'] # 还可以是数值或元组
values = [1, 2, 3] # 还可以是字符串或元组
dict3 = dict(zip(keys, values))
4.2 增删改查
访问字典
列表和元组是通过下标来访问元素的,而字典不同,它通过键来访问对应的值。
- 访问字典元素
dictname[key]
其中,dictname 表示字典变量的名字,key 表示键名。注意,键必须是存在的,否则会抛出异常。
- get( ) 方法
dictname.get(key[,default])
其中,dictname 表示字典变量的名字;key 表示指定的键,是必不可少的;default 用于指定要查询的键不存在时,此方法返回的默认值,如果不手动指定,就会返回 None,因此是可选的。
alien = {'color': 'green'}
print(alien.get('color','0')) # green
print(alien.get('points','0')) # 0
Tips:
判断字典是否包含指定键值对的键,可以使用 in 或 not in 运算符。
添加、修改和删除键值对
alien = {'color': 'green','points': 5}
#添加键值对
alien['x_position'] = 0
alien['y_position'] = 25
#修改键值对
alien['color'] = 'yellow'
#删除键值对
del alien['points']
print(alien_0) # {'color': 'yellow', 'x_position': 0, 'y_position': 25}
查看 dict 所有方法
Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法。
>>> dir(dict)
['clear', 'copy', 'fromkeys', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values' ]
遍历字典
现在我定义了一个 favorite 字典,我想遍历字典中的值,则有三种方式可以遍历。
favorite = {‘1’: ‘Python’, ‘3’: ‘C++’, ‘2’: ‘Python’}
- 遍历所有键
# keys()方法用于返回字典中的所有键(key)
for name in favorite.keys():
print(name)
# 也可以不用keys,会默认遍历所有key
for name in favorite:
print(name)
此外,可以通过 sorted( ) 来获得特定顺序排列的键列表的副本:
for name in sorted(favorite.keys()):
print(name)
- 遍历所有值
# values()方法用于返回字典中所有键对应的值(value)
for language in favorite.values():
print(language)
"""
Python
C++
Python
"""
此外,通过对包含重复元素的列表调用 set( ) ,可让 Python 找出列表中独一无二的元素。
for language in set(favorite.values()):
print(language)
"""
Python
C++
"""
- 遍历所有键值对
# items()用于返回字典中所有的键值对(key-value)
for k, v in favorite.items():
print("key:", k, " value:", v)
4.3 字典嵌套
- 在列表中存储字典
aliens = []
for alien_number in range(30):
new_alien ={'color': 'green', 'points': 5}
aliens.append(new_alien)
- 在字典中存储列表
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'],
}
- 在字典中存储字典
users = {
'aeinstein':{
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie':{
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}