字典
本篇章讲述数据结构字典,主要围绕如何访问字典,如何修改字典,如何删除字典某元素,如何遍历字典,字典的常见方法get、update、setdefault、pop函数等,如何增加字典的key-value值,存储字典的列表,存储列表的字典,以及存储字典的字典等。
字典定义
python中字典是一系列键-值对,每个键对应一个值,键是唯一的,可以使用键获取对应的值,与键相关联的值可以是数字、字符串、列表乃至字典。
- 简单的字典实例
alien = {'color': 'green', 'points': 5}
# 访问字典的元素
alien['color']
alien['points']
- 访问字典中的值
alien = {'color': 'green', 'points': 5}
new_points = alien['points'] # 如果这个键不存在会报错
print('You just earned ' + str(new_points) + ' points!')
# 另一种访问方式
alien.get('color') # 如果键不存在,返回None
alien.get('good', 'zhiding') # 如果键不存在,返回zhiding的元素
- 添加键-值对
alien = {'color': 'green', 'points': 5}
# 下面就是增加了键值对
alien['x_position'] = 0
alien['y_position'] = 25
# 创建空字典,然后增加键值对
alien = {}
alien['color'] = 'green'
alien['points'] = 60
- 修改字典中的值
alien_0 = {'color': 'green'}
print("The alien is " + alien_0['color'] + ".")
# 直接修改就好, 其中实质意义:键存在就相当于修改,不存在就是新增新的键值对
alien_0['color'] = 'yellow'
print("The alien is now " + alien_0['color'] + ".")
#################
# 一个修改字典中值实例
alien_0 = {'x_position': 0, 'y_position': 25, 'speed': 'medium'}
print("Original x-position: " + str(alien_0['x_position']))
if alien_0['speed'] == 'slow':
x_increment = 1
elif alien_0['speed'] == 'medium':
x_increment = 2
else:
x_increment = 3
alien_0['x_position'] = alien_0['x_position'] + x_increment
print("New x-position: " + str(alien_0['x_position']))
-
删除键值对
del alien_0['points']
删除的键值对会永远消失 -
遍历字典
1、遍历字典的键和值
for key, value in alien_0.items()
2、遍历字典的键
for key in alien_0.keys()
3、按顺序遍历字典中的所有键
for name in sorted(alien_0.keys())
4、遍历字典的所有值
for value in alien_0.values()
5、遍历字典所有值(利用集合set去重遍历)
for value in set(alien_0.values()) -
判断指定的键是否存在字典中
if 'good' in alien_0.keys() -
字典存储在列表
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
###########
aliens = []
for alien_number in range(30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
- 列表存在字典
pizza = {
'crust': 'thick',
'toppings': ['mushroom', 'extra pizza']
}
for topping in pizza['toppings']:
print("\t" + topping)
- 字典存储在字典
users = {
'aeinstein':
{
'first': 'albert', 'last': 'einstein', 'location': 'princeton',
},
'mcurie':
{
'first': 'marie', 'last': 'curie', 'location': 'paris',
},
}
for username, user_info in users.items():
print('\n Username: ' + username)
full_name = user_info['first'] + ' ' + user_info['last']
- 字典常见的方法,设字典变量为d。
1、print(d['key']) 如果写了不存在的值会报错
2、print(d.get('key')) 如果写了不存在的值,返回None
3、print(d.get('key','not find ')) 如果找不到存在的值,返回 “not find”
4、print(d.keys()) #获取所有的key值
5、print(d.values()) #获取所有的value 值
6、if 'key' in d: #判断key是否存在
7、d['key'] = value key 存在即修改,key不存在即新增
8、d.setdefault('key',value) 只能新增
9、d.pop('key') 删除字典某元素,必须要传值,因为字典是无序的,会返回该键对应的值
10、d.popitem() 随机删除一个, 返回一个元组,(键, 值)
11、del d['key']
12、d.clear() 清空字典
13、len(d):计算字典元素个数,即键的总数。
14、str(d):输出字典可打印的字符串。
15、update 利用一个字典项更新另外一个字典,如d.update(f),那么d字典发生变化
最后,浅复制,深复制如下
image.png
网友评论