在python中,有一种通过名字来引用值的数据结构,这种类型的数据结构成为映射。

字典是Python中唯一内建的映射类型,具有以下特点:

  • 字典中的值是无序的
  • 值存在特定的键(key)下
  • 键(key)可以是数字,字符串或元组等不可变的数据类型。

字典由多个键及与其对应的值构成的键-值对组成:

phonebook = {'Alic':'2341', 'Beth':'9102', 'Cecil':'3258'}

dict函数:

用于建立字典

>>> items = [('name','eastonliu'),('age',32)]
>>> d = dict(items)
>>> d
{'name': 'eastonliu', 'age': 32}
>>> d = dict(name='eastonliu',age=32)
>>> d
{'name': 'eastonliu', 'age': 32}

一、基本字典操作


1、len(d)返回字典中键-值对的数量

>>> d = {'name': 'eastonliu', 'age': 32}
>>> len(d)
2

2、d[k]返回关联到键k上的值

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d['name']
'eastonliu'

3、d[k]=v将值v关联到键k上

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d['score']=99
>>> d
{'name': 'eastonliu', 'age': 32, 'score': 99}

4、del d[k]删除键为k的项

>>> d = {'name': 'eastonliu', 'age': 32}
>>> del d['age']
>>> d
{'name': 'eastonliu'}

5、k in d 检查字典d中是否含有键为k的项

>>> d = {'name': 'eastonliu', 'age': 32}
>>> 'name' in d
True
>>> 'score' in d
False

二、字典的格式化字符串


>>> phonebook = {'Alic':'', 'Beth':'', 'Cecil':''}

>>> "Cecil's phone number is %(Cecil)s." % phonebook

"Cecil's phone number is 3258."

三、字典的方法


1、clear

用于清除字典中的所有项

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d.clear()
>>> d
{}

2、copy

返回一个具有相同键-值对的新字典

>>> x = {'name': 'eastonliu', 'age': 32}
>>> y = x.copy()
>>> y
{'name': 'eastonliu', 'age': 32}

3、fromkeys

使用给定的键建立新的字典,每个键都对应一个默认的None值

>>> dict.fromkeys(['name','age'])
{'name': None, 'age': None}

4、get

通过键返回字典中的值,当键不存在时,返回None

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d.get('name')
'eastonliu'
>>> print (d.get('score'))
None

5、items

以列表形式返回的键值对元组类型

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d.items()
dict_items([('name', 'eastonliu'), ('age', 32)])

6、keys

将字典中的键以列表形式返回

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d.keys()
dict_keys(['name', 'age'])

7、values

将字典中的值以列表形式返回

>>> d = {'name': 'eastonliu', 'age': 32}
>>> d.values()
dict_values(['eastonliu', 32])

Python3学习笔记(七):字典的更多相关文章

  1. python3学习笔记七(字典)

    参照http://www.runoob.com/python3/python3-dictionary.html 字典 字典是另一种可变容器模型,且可以存储任意类型对象. dict1 = {key1:v ...

  2. python学习笔记七——字典

    4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...

  3. python3.4学习笔记(七) 学习网站博客推荐

    python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...

  4. Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

    Python3学习笔记(urllib模块的使用)   1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None,  ...

  5. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  6. Python3学习笔记 - 准备环境

    前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...

  7. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  8. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  9. python3学习笔记(7)_listComprehensions-列表生成式

    #python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...

  10. python3学习笔记(6)_iteration

    #python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...

随机推荐

  1. poj1284(欧拉函数+原根)

    题目链接:https://vjudge.net/problem/POJ-1284 题意:给定奇素数p,求x的个数,x为满足{(xi mod p)|1<=i<=p-1}={1,2,...,p ...

  2. Luogu P2572 序列操作

    (是道线段树好题√) 题目链接 题外话:这道题我也不知道卡了自己多少天,从初赛之前就开始做,一直到现在才a掉(时间跨度得有将近十天了吧?) 线段树,嗯,好像很简单的样子. 但事实上因为自己太菜了,卡了 ...

  3. python with hadoop

    python with  hdfs hdfs 可以在 linux 本地操作 bin/hdfs dfs -ls /foo 但是这种只能在 命令行 操作. 通常我们需要在程序中实现远程操作,python ...

  4. php点击链接直接下载文件写法

    down.php <?php $file = "avater.jpg"; //计算机上的一个文件 $fileName = basename($file); //获取文件名 h ...

  5. C++ 调用C语言、extern "C"、__cplusplus关键字

    ——C++编译器完全兼容C语言的编译方式.(但是得有源代码) ——C++编译器会优先使用C++的编译方式进行编译 ——extern "C" 关键字能够强制C++编译器进行C方式的编 ...

  6. Dynamic Compilation and Loading of .NET Objects

      This is another approach to dynamic compilation of objects and their usage via Interfaces. Introdu ...

  7. npm学习(八)之如何使用语义化版本

    npm的语义化版本控制——Semantic versioning 在新发布的代码中传达更改的程度非常重要,因为有时更新会破坏包需要的代码(称为依赖项).语义化版本控制(semver)是一个旨在解决这个 ...

  8. sql删除重复行和删除字段首位

    删除重复行 user_info: -- 单字段筛选重复行 SELECT *from user_info WHERE NAME in ( SELECT NAME from user_info GROUP ...

  9. CentOS下配置Apache HTTPS

    一.安装Apache支持SSL/TLS yum install mod_ssl openssl 二.创建证书 证书(Cerificate)的基本作用是将一个公钥和安全个体(个人.公司.组织等)的名字绑 ...

  10. vue实现轮播图

    /* Start  基本样式*/ * {   margin: 0;   padding: 0; } ul {   list-style-type: none; } body {   font-size ...