page contents

字典及其简单操作

假如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 键(key);另一组数据可通过 key 来访问,被称为值(value)

字典

1.字典简介

引入:

假如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 键(key);另一组数据可通过 key 来访问,被称为值(value)。

概念:字典(dict,dictionary的简写)是Python中一个非常重要的内置数据类型,是Python中的映射类型(Mapping Type),它把“键”(key)映射到“值”(value),通过key可以快速找到value,它是一种“键值对”(key-value)数据结构

作用:存储数据,并保存数据之间的映射关系(关联关系)

格式:{key1: value 1, key1: value 2, key1: value 3}

dict_1 = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}

注意事项:键必须是唯一的,但值则不必

值可以取任何数据类型,包括字典、列表等;但键必须是不可变的,如字符串,数字

2.简易操作

创建字典:

创建空字典:通过dict()或一对花括号

# 创建空字典
a = {}  # 使用花括号
b = dict()  # 调用dict()函数
print(a == b)
print(a)
print(b)

创建非空字典:花括号内放用逗号“,”隔开的多个键值对,键值对用冒号“:”隔开

# 创建非空列表
c = {'姓名': '小明', '年龄': 17}
d = {"信息": ['姓名', '年龄', '身高'], '成绩': {'语文': 80, '数学': 90}}
user_0 = {
   'username': 'xiaoming',
   'first': 'xiao',
   'last': 'ming'
}
print(c)
print(d)
print(user_0)

访问字典的值

用法:字典名[要访问的值所对应的键],若指定的键不在字典中则会抛出异常

# 访问字典的值
d = {"信息": ['姓名', '年龄', '身高'], '成绩': {'语文': 80, '数学': 90}}
print(d['信息'])
print(d['成绩']['语文'])
print(d['信号'])  # 该键不包含在字典中

3.字典增删改查

3.1添加键值对

字典是一种动态结构(不同于元组),可随时在其中添加键值对,可通过:(字典名[新键] = 新值)来添加键值对

# 添加键值对
dict_1 = dict()  # 先创建一个空字典
print(dict_1)

dict_1['x_position'] = 0
print(dict_1)

dict_1['y_position'] = 25
print(dict_1)

3.2删除键值对

对于字典中不再需要的信息,可使用 del 语句将相应的键值对彻底删除,可通过:(del 字典名[待删除键值对的键])来删除相应的键值对

# 删除键值对
dict_2 = {'x_position': 0, 'y_position': 25}
print(dict_2)

del dict_2['y_position']  # 删除键值对
print(dict_2)

3.3修改字典中的值

若要修改字典中的值,可以指定相对应的键,再给它赋予新值,例如:(字典名[相对应的键] = 新值)来修改字典中的值

# 修改字典中的值
dict_3 = {'x_position': 0, 'y_position': 25}
print(dict_3)

dict_3['x_position'] = 3  # 修改字典中的值
print(dict_3)

3.4查找字典中的值

普通查找

通过使用:字典名[相对应的键] 来查找相对应的值

使用 方法get(a, b) 来查找

使用普通查找如果指定的键不存在,就会出错,而方法 get() 则不会出现这种情况

方法 get() 的第一个参数用于指定键,是必不可少的;第二个参数为指定的键不存在时要返回的值,是可选的

使用方法 get() ,如果字典中有指定的键,将获得与之相关联的值;如果没有,将获得指定的默认值

# 查找字典中的值
massage = {'姓名': '聂小倩', '地址': '深圳', '学历': '本科'}
# 普通查找
print(f"{massage['姓名']} {massage['地址']} {massage['学历']}")

# 查找出错
# print(f"{massage['姓名']} {massage['身高']} {massage['学历']}")

# 使用get()方法
print(massage.get('地址', '指定的键不存在'))
print(massage.get('身高', '指定的键不存在'))

4.遍历

4.1遍历所有键值对

遍历所有的键值对,可在for循环中声明两个变量,用于存储键值对中的键和值,这两个变量可以使用任意符合规范的名称,且用字典名使用items()方法;然后将这两个变量在for循环中打印出来即可

# 遍历所有键值对
user_0 = {
   'username': 'xiaoming',
   'first': 'xiao',
   'last': 'ming'
}

for key, value in user_0.items():
   print(f"key: {key}")
   print(f'value:{value}\n')

4.2遍历字典中的所有键

遍历字典中的所有键,可在for循环中声明一个变量,用于存储键值对中的键,这个变量可以使用任意符合规范的名称,且用字典名使用keys()方法(也可不使用);然后将这个变量在for循环中打印出来即可

# 遍历字典中的所有键
favorite_languages = {
   'jen': 'python',
   'sarah': 'c',
   'edward': 'java',
   'phil': 'python'
}

for name in favorite_languages.keys():
   print(name.title())

4.3遍历字典中的所有值

遍历字典中的所有键,可在for循环中声明一个变量,用于存储键值对中的值,这个变量可以使用任意符合规范的名称,且用字典名使用values()方法;然后将这个变量在for循环中打印出来即可

# 遍历字典中的所有值
favorite_languages = {
   'jen': 'python',
   'sarah': 'c',
   'edward': 'java',
   'phil': 'python'
}

for name in favorite_languages.values():
   print(name.title())
  • 发表于 2021-05-15 16:50
  • 阅读 ( 781 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Cara
Cara

36 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章