Python 基础 4-1 字典入门

引言

字典 是Python 内置的一种数据结构,它便于语义化表达一些结构数据,字典是开发中常用的一种数据结构

字典介绍

  1. 字典使用花括号 {}dict 来创建,字典是可以嵌套使用的
  2. 字典是成对出现的,字典以键(key)值(value)对形式体现
  3. 键与值之间用冒号 : 分隔,每个键值对之间用逗号 , 分隔开
  4. 字典的 key 是唯一的,而 value 可以重复出现
  5. 字典的 key 不使用中文或其他字符,这是业内约定俗成的做法

创建字典

字典可以使用花括号 {}dict 函数来创建

1. 使用花括号 {} 创建字典

注意:字典每个键值对之间要用逗号 , 分隔开

emp = {'name':'张三' , 'age':22 , 'sex':'男'}
print(emp)
# 运行结果:{'name': '张三','age': 22, 'sex': '男'}
# 字典打印时会将花括号也打印出来

print(type(emp))
# 运行结果:<class 'dict'>
# 从以上打印类型可以看出变量属于 dict 字典类型
2-1. 使用 dict 函数创建字典

dict 是 Python 的内置函数,使用该函数创建列表时,key 不需要加引号
dict 函数的效果和以上示例中的运行效果是相同的

emp = dict(name='张三' , age=22,sex='男')
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男'}
2-2. fromkeys 方法

fromkeys 方法与 dict 函数搭配使用,它允许使用序列来创建字典 key

emp = dict.fromkeys(['name' , 'age' , 'sex'])
print(emp)
# 运行结果:{'name': None, 'age': None, 'sex': None}

如果不为 fromkeys 方法指定默认值,默认情况下返回 None
如果需要改变这种情况,只需在 fromkeys 方法第二个参数传入默认值即可,如下示例

emp = dict.fromkeys(['name' , 'age' , 'sex'] , 'N/A')
print(emp)
# 运行结果:{'name': 'N/A', 'age': 'N/A', 'sex': 'N/A'}

默认值 N/A 不是必须的,可按照项目实际需求传入对应值,或不传入值

列表取值

字典取值有两种方式

1. 方式一

在字典变量后面使用方括号传入字典的 key 进行取值

这种方法有一个弊端:如果字典中不存在 key ,会报 KeyError 错误

emp = {'name':'张三' , 'age':22 , 'sex':'男'}
print(emp['name'])
# 运行结果:张三
2. 方式二

使用字典 get 方法取值

如果不存在 key ,返回 None 或自己指定的值,例如 N/A,以下为示例代码

emp = {'name':'张三' , 'age':22 , 'sex':'男'}
v = emp.get('name')
print(v)
# 运行结果:张三
emp = {'name':'张三' , 'age':22 , 'sex':'男'}
v = emp.get('dept','其他部门')
print(v)
# 运行结果:其他部门

字典的写操作

字典增删改查操作

更新

Python 字典秉承:“有则更新,无则新增”原则

1. 更新字典 Value
emp = {'name':'张三' , 'age':22 , 'sex':'男' , 'dept':'研发部'}
emp['dept'] = '推广部'
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '推广部'}
2. 批量更新

使用 update() 方法批量更新字典,在该方法内传入对应对应的 key 、value

emp = {'name':'张三' , 'age':22 , 'sex':'男' , 'dept':'研发部'}
emp.update(age=18 , dept='推广部')
print(emp)
# 运行结果:{'name': '张三', 'age': 18, 'sex': '男', 'dept': '推广部'}

新增

列表的新增操作和更新操作基本相同,Python 字典秉承:“有则更新,无则新增”原则
当字典存在对应的 key 时执行更新,当字典不存在对应的 key 时执行新增

1. 新增操作
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
emp['job'] = '销售'
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部', 'job': '销售'}
2. 批量操作
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
emp.update(dept='推广部' , job='推广员')
print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男', 'dept': '推广部', 'job': '推广员'}

删除

1. 使用 pop() 方法删除

该方法删除字典给定的键及对应的值
pop() 可返回值,返回值为被删除的值

emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
dept = emp.pop('dept')

print(emp)
# 运行结果:{'name': '张三', 'age': 22, 'sex': '男'}

print(dept)
# 运行结果:研发部
2. 使用 popitems() 删除字典最后一个 kv

popitems() 返回的是一个元组

emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
kv = emp.popitem()

print(emp)
# {'name': '张三', 'age': 22, 'sex': '男'}

print(kv)
# 运行结果:('dept', '研发部')
3. 清空列表 clear()
emp = {'name': '张三', 'age': 22, 'sex': '男', 'dept': '研发部'}
emp.clear()
print(emp)
# 运行结果:{}

原文地址:https://www.cnblogs.com/dazhi-blog/p/11520742.html

时间: 2024-08-11 15:12:05

Python 基础 4-1 字典入门的相关文章

Python基础知识(五)------字典

Python基础知识(四)------字典 字典 一丶什么是字典 ? dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ? 键: 必须是可哈希,(不可变的数据类型),必须是唯一的 ? 值: 任意数据类型 特点: ? 查询的效率非常高,通过key来查找元素 ? 内部使用key来计算一个内存地址(暂时), hash算法,key必须是不可变的数据类型(key 必须是可哈希的数据类型),key必须是不可变的数据类型 ? 字典是无序的, python3.6版本以上,默

python基础教程1:入门基础知识

写在系列前,一点感悟 没有梳理总结的知识毫无价值,只有系统地认真梳理了才能形成自己的知识框架,否则总是陷入断片儿似的学习-遗忘循环中. 学习方法真的比刻苦"傻学"重要多了,而最重要的学习方法无非总结梳理,温故知新,多动手实践.作为一个编程的门外汉,要快速转型上手Python一定要践行此"术". 我完整看完的技术书籍几乎没有,从今天起就要通读下<Python基础教程>第二版,并每一章节都写一篇博客记录.总结所学. 本书共29章,计划在14天内看完.任务艰巨

【python基础】用字典做一个小型的查询数据库

例子来源于<python基础教程>第三版,57p 该例子主要是使用字典的方式,实现一个小型的数据库,通过查询字典的键值来获取用户的信息. 本人修改了部分代码. #!/usr/bin/python3 -*- coding:utf-8 -*- # 使用字典构建一个简单的数据库 #导入模块,主要为了做异常退出 import os # 构建people字典,用来存储用户信息 people = { 'Ailce':{ 'phone': '2341', 'addr': 'Foo drive 23' },

python基础数据类型之字典dict和集合set及其他(for,enumerate,range)。

2.6字典dict. 2.6.1 字典的初识 1. 列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2. 列表只能按照顺序存储,数据与数据之间关联性不强. 所以针对于上的缺点,说咱们需要引入另一种容器型的数据类型,解决上面的问题,这就需要dict字典. 数据类型可以按照多种角度进行分类,就跟咱们人一样,人按照地域可以划分分为亚洲人,欧洲人,美洲人等,但是按照肤色又可以分为白种人,黄种人,黑种人,等等,数据类型可以按照不同的角度进行分类,先给大家按照可变与不可变的数据类型的

python基础&mdash;&mdash;列表、字典

Python核心数据类型--列表 列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小.大小可变的,通过偏移量进行赋值以及其他各种列表的方法进行调用,能够修改列表.其他更多的功能可以查阅python的标准手册,或者运行help(list)或dir(list)查看list方法的完整清单. 任意对象的有序集合:从功能上看,列表是收集其他对象的地方,同时列表所包含的每一项都保持了从左到右的位置顺序. 通过偏移读取:可以通过列表对象的偏移对其进行索引,从而读取对象的某一部分内容.由于列表的每一

.Net程序员之Python基础教程学习----字典的使用 [Third Day]

  今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相同的Key,后面Key的value将会覆盖前面的数据. 一.字典的基本用法. 1.字典的创建: 字段的创建格式是{key:Value,Key:Value},也可以通过,dict函数转换. Note:key的顺序按照字符串从小到大排序:如果声明字典的时候有相同的Key,取最后一个.(有别于.net)

python基础6(字典)

映射:键值对的关系,键(key)映射值(value) 字典是Python唯一的映射类型 >>> phonebook = {'wakey':'1111','Ethon':'2222','joho':'3333'} >>> phonebook {'joho': '3333', 'wakey': '1111', 'Ethon': '2222'} 扩展:映射类型与序列类型的区别 1.访问方式不同,序列类型用数字类型的键,而映射类型可以用其他对象类型做键(一般式字符串) >

Python基础知识:字典dict

注意: # 字典是可变类型 # 字典中的数据是无序的 # 一个字典条目的语法是 键:值 # 任何不可变数据类型都可以作为条目的键 知识点一:创建 键:必须独一无二(如果键重复存入,会被覆盖),只能是不可变类型(常用字符串和数字) 值:可以是任意数据类型 知识点二:访问数据项 通过key------dic[key] 如果key不存在,报KeyError       没有索引!不能分片! 知识点三:更新数据项 dic[key] = value     如果key不存在,就是新增数据项 知识点四:删除

python基础数据类型一(字典)

字典 列表可以存储大量的数据类型,但是只能按照顺序存储,数据与数据之间关联性不强. 所以咱们需要引入一种容器型的数据类型,解决上面的问题,这就需要dict字典. 字典(dict)是python中唯?的?个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯?的.在保存的时候, 根据key来计算出?个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key必须是可hash的 可以改变的都是不

python基础数据类型之字典+集合

一.数据类型之字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 总结:1.字