字典初识

字典的认识

首先,我们来认识一下字典:

# 定义一个字典
user_dict = {"name": "zhangsan", "age": 20, "height": 181} print(user_dict)
# {'name': 'zhangsan', 'age': 20, 'height': 181}

字典的作用和定义语法

  • 字典是除列表之外最灵活的数据类型;
  • 字典同样可以用来存储多个数据,但字典通常用来存储 描述一个物体的相关信息
  • 列表元组中我们更在意的是顺序,按索引顺序取值;在字典中我们更在意的是键和值;
  • 列表元组有序,而字典无序;(补充一下,在pycharm运行下,其实基本都是按定义的键值对顺序输出的)
  • 字典使用键值对存储数据,几对 键值对之间用逗号分隔;键key是索引,值value是数据;键和值之间用冒号:分隔;键必须是唯一的;值可以取任何数据类型,但键必须是字符串,数字或者元组

字典的定义语法

变量名 = {"key1": "value1", "key2": "value2", "key3": "value3", ... }
eg:
user_dict = {"name": "zhangsan", "age": 20, "height": 181}

字典的定义和取值

# 定义一个字典
user_dict = {"name": "zhangsan", "age": 20, "height": 181} # 注意,字典是个无序的数据集合,字典的每次输出的结果可能顺序不一致
print(user_dict)
# 字典取值
print(user_dict["name"])
print(user_dict["height"])

字典的基本使用-增删改查

user_dict = {"name": "zhangsan", "age": 20, "height": 181}

# 取值,注意,如果取值的key不存在,会报错
print(user_dict["name"]) # 增加/修改
print(user_dict)
# 如果key不存在,会新增键值对;存在则进行修改
user_dict["gender"] = "man"
user_dict["age"] = 21
print(user_dict) # 删除,注意,如果删除键值对 时key不存在,会报错
user_dict.pop("height")
print(user_dict)

字典的操作函数

字典操作函数查看

在ipython3交互式下,定义一个空字典, 空字典. 按下tab键,即可查看;例如:

In [1]: user_dict = {}

In [2]: user_dict.
user_dict.clear user_dict.items user_dict.setdefault
user_dict.copy user_dict.keys user_dict.update
user_dict.fromkeys user_dict.pop user_dict.values
user_dict.get user_dict.popitem In [2]: user_dict.

由此可见,字典的操作函数有:

user_dict.clear       user_dict.items       user_dict.setdefault
user_dict.copy user_dict.keys user_dict.update
user_dict.fromkeys user_dict.pop user_dict.values
user_dict.get user_dict.popitem

字典常用操作函数罗列

方法 描述
len(dict) 获取字典的 键值对 数量
dict.keys() 所有 key列表
dict.values() 所有 value列表
dict.items() 所有 (key,value)元组列表
dict[key] 从字典取值,key不存在会报错
dict.get(key) 从字典取值,key不存在不会报错
del dict[key] 删除指定键值对,key不存在会报错
dict.pop(key) 删除指定键值对,key不存在会报错
dict.pop(item) 随机删除一个键值对
dict.clear() 清空字典
dict[key] = value key存在,修改value;key不存在,新增键值对
dict.setdefault(key, value) key存在,不会修改value;key不存在,新增键值对
dict.update(dict2) 将字典2的数据合并到字典1

字典操作实操

user_dict = {"name": "zhangsan", "age": 20, "height": 181}

# 1.统计键值对数量
print(len(user_dict)) # 3 # 2.合并字典
# 注意,如果被合并的字典2中有已经存在于字典1中的键值对,新的键值对会覆盖原字典的
gender = {"gender": "man"}
user_dict.update(gender)
print(user_dict)
# {'name': 'zhangsan', 'age': 20, 'height': 181, 'gender': 'man'} # 3.请空字典
user_dict.clear()
print(user_dict) # {}

字典其他扩展

字典 循环遍历

遍历 就是 依次从字典中获取键值对;

但在实际开发中,由于字典的每一个键值对保存数据的数据类型时不一样的,所以针对字典的循环遍历的情况不怎么多;

user_dict = {"name": "zhangsan", "age": 20, "height": 181}

# k 是每次循环中,获取到的键值对的key
for k in user_dict:
print("%s: %s"% (k, user_dict[k])) # name: zhangsan
# age: 20
# height: 181

字典的应用场景

  • 使用 多个键值对,存储描述一个物体的相关信息,描述更复杂的数据信息

  • 将多个字典·1放在一个列表中,再进行遍历,在循环内部针对每一个字典进行相同的处理;

    students = [

    {"name": "zhangsan", "age": 19, "height": 175},

    {"name": "lisi", "age": 19, "height": 178}

    ]

    for stu in students:

    # 字典是无序的,列表是有序的,所以会先输出张三的字典,再输出李四的字典,但字典内部顺序不定

    print(stu)

    # {'name': 'zhangsan', 'age': 19, 'height': 175}

    # {'name': 'lisi', 'age': 19, 'height': 178}

Python基础之字典的更多相关文章

  1. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  2. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  3. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  4. Python基础知识---字典

    现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> valu ...

  5. python基础5 字典

    一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...

  6. python基础_字典_列表_元组考试_day4

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...

  7. Python基础__字典、集合、运算符

    之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...

  8. python基础类型—字典

    字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必 ...

  9. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

  10. python基础之字典以及增删改查

    字典:字典是python中唯一的一个映射类型,主要形式为 dic = {key1:value,key2:value2,....} 字典中key的值是唯一的,主要关系到HASH算法,并且key的值必须是 ...

随机推荐

  1. Ubuntu 16.04 安装Gitlab

    这里选用Ubuntu16.04系统 安装Gig sudo apt-get install git 安装gitlab 1,安装依赖包,运行如下命令 sudo apt-get install curl o ...

  2. 排错:Windows系统异常导致Filebeat无法正常运行

    Windows 下Filebeat排错Case实例一份,请查收. 问题描述: Windows Server下Filebeat Agent服务无法正常启动,导致网络数据打点无法正常进行,影响大范围用户网 ...

  3. Windows Server 2016-OU组织单位日常操作

    技术无所谓贵贱,既然曾经做过就总该是要留下点什么,毕竟做技术这些年给我们留下太多太多的成长经历,总有人问这些已经很皮毛了为什么还要写,其实没那么多花哨理由,就是想着做或者不做这一块总是要对过往做个简单 ...

  4. python3 函数传参练习 全局变量与局部变量 的理解

    额 还是继续抄一边NLP第二条: 2.一个人不能控制另外一个人   一个人不能改变另外一个人,一个人只能改变自己. 每个人的信念,价值观,规条系统只对本人有效,不应强求别人接守. 改变自己,别人才会有 ...

  5. SignalR使用笔记

    最近项目要求添加一个给用户发送消息的功能,就决定使用SignalR.翻到了以前学习SignalR的学习笔记,基本是官方文档的简版整理,便于快速阅览和实现. 1. nuget添加signalr引用: a ...

  6. vue,vuex的后台管理项目架子structure-admin,后端服务nodejs

    之前写过一篇vue初始化项目,构建vuex的后台管理项目架子,这个structure-admin-web所拥有的功能 接下来,针对structure-admin-web的不足,进行了补充,开发了具有登 ...

  7. 一次composer错误使用引发的思考

    一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comop ...

  8. TabBottomFragmentLayout【自定义底部选项卡区域(搭配Fragment)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 自定义底部选项卡布局LinearLayout类,然后配合Fragment,实现切换Fragment功能. 缺点: 1.底部选项卡区域 ...

  9. MySQL系列--4.使用Python3访问数据库

    1.安装MySQL驱动 pip install mysql-connector 安装完成后进入命令行模式,导入驱动,如果不报错,说明安装成功 Python 3.6.7 (default, Oct 22 ...

  10. 一套代码小程序&Web&Native运行的探索03——处理模板及属性

    接上文:一套代码小程序&Web&Native运行的探索02 对应Git代码地址请见:https://github.com/yexiaochai/wxdemo/tree/master/m ...