Python字典(Dictionary)

字典是一种可变容器模型,可存储任意类型对象。

字典的每个键值(key => value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:

 d = {key1 : value1, key2 : value2 }

字典的特点:

键必须是唯一的,但值则不必唯一。

值可以取任何数据类型,但键必须是不可变的类型。

  不可变类型:数字、字符串、元组;

  可变类型:列表、字典。

字典中键值是无序的。

1、创建字典

方法1:

 dic = {'ID':'','name':'oliver','age':

输出

{'name': 'oliver', 'age': , 'ID': ''}

方法2:

 dic = dict((('ID',''),))   #括号后的逗号表示第二对括号里边是一个序列

输出:

{'ID': ''}

2、访问字典

通过key去查找。

例1:

 dic = {'ID':'','name':'oliver','age':}
print(dic['name'])

输出:

oliver

例2:

 dic = {'ID':'','name':'oliver','age':}
print(list(dic.keys()))

输出:

['age', 'ID', 'name']

例3:

 dic = {'ID':'','name':'oliver','age':18}
print(list(dic.values()))

输出:

18, '', 'oliver']

例4:

 dic = {'ID':'','name':'oliver','age':18}
print(list(dic.items()))

输出:

[('ID', ''), ('age', 18), ('name', 'oliver')]

2、更新字典

若不存在,将dic2中的键值加入dic;若存在,则更新值
 dic = {'ID':'','name':'oliver','age':18}
dic2 = {'':'','':''}
dic.update(dic2)
print(dic)

输出:

{'age': 18, 'ID': '', '': '', 'name': 'oliver', '': ''}

2、删除字典

清空字典

 dic = {'ID':'','name':'oliver','age':18}
print(dic.clear())

输出:

None

删除键值对

 dic = {'ID':'','name':'oliver','age':18}
del dic['name']
print(dic)

输出:

{'age': 18, 'ID': ''}

删除整个字典

 del dic5
print(dic5)

输出:

name 'dic5' is not defined

删除键值对,并返回该key对应的值

 dic = {'ID':'','name':'oliver','age':18}
print(dic.pop('age'))

输出:

18
{'ID': '', 'name': 'oliver'}

随机删除键值对,并以元组的形式返回删除的键值对

 a = dic.popitem()
print(a,dic)

输出:

('ID', '') {'age': 18, 'name': 'oliver'}

setdefault()

如果字典中存在此key,则不做修改;如果不存在,则添加键值。该方法还可以返回添加的值。

 dic = {'ID':'','name':'oliver','age':18}
ret = dic.setdefault('hobby','film')
print(dic)
print(ret)

输出:

{'name': 'oliver', 'ID': '', 'hobby': 'film', 'age': 18}
film

fromkeys()

创建一个新字典。

 dic6=dict.fromkeys(['host1','host2','host3'],'test')
print(dic6)

输出:

{'host2': 'test', 'host1': 'test', 'host3': 'test'}

sorted()

将字典中的键进行排序。

 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
print(sorted(dic))

输出:

[111, 121, 211, 554]

按照键对字典进行排序。

 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
print(sorted(dic.items()))

输出:

[(111, 'aa'), (121, 'asdf'), (211, 'ds'), (554, 'bb')]

has_keys()

Python 2中使用has_keys()判断指定的key在字典中是否存在。存在则返回True。

 dic={5:'',2:'',4:''}
dic.has_keys(5)

Python 3中的判断方法:

 print(5 in dic)

3、字典遍历

 dic = {'ID':'','name':'oliver','age':18}
for i in dic:
print(i,dic[i])

输出:

name oliver
age 18
ID 123124

Python学习笔记——Day3的更多相关文章

  1. [python学习笔记]Day3

    函数 如: def is_leapyear(year): if (year%4 == 0 and year%100 != 0) or (year%400 == 0): return True else ...

  2. Python学习笔记 - day3 - 数据类型及运算符

    Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  3. python学习笔记Day3

    set有点:1.访问速度快 2.天生解决了重复问题 tuple与set区别: 元组可重复,set不可重复创捷集合1 >>> s1.add('alex')>>> pr ...

  4. 【目录】Python学习笔记

    目录:Python学习笔记 目标:坚持每天学习,每周一篇博文 1. Python学习笔记 - day1 - 概述及安装 2.Python学习笔记 - day2 - PyCharm的基本使用 3.Pyt ...

  5. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  6. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  7. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  8. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  9. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

随机推荐

  1. linux共享库

    linux共享库 linux中共享库一般以.so.x.y.z 命名,其中x,y,z分别为主版本号.次版本号.发布版本号.同一个库,主版本号不同则相互不兼容:主版本相同,次版本号高的库比次版本号低的库有 ...

  2. C学习笔记(八)字符输入输出和输入确认

    缓冲区 缓冲区分为两类:完全缓冲(fully buffered)I/O和行缓冲(line-buffered)I/O.完全缓冲在缓冲区满时被清空(内容被发送至目的地).这种类型常出现在文件输入中.缓冲区 ...

  3. canvas初体验之基本线条

    有的时候我们打开一些网站,可以看到背景是闪烁的星空或者是有一些可以与鼠标交互的线条等等,此酷炫的效果就是用到了html5的canvas效果. 首先来认识一下h5新增的标签的写法<canvas&g ...

  4. Construct Binary Tree from Preorder and Inorder Traversal [LeetCode]

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  5. HashMap其实就那么一回事儿之源码浅析

    上篇文章<LinkedList其实就那么一回事儿之源码分析>介绍了LinkedList, 本次将为大家介绍HashMap. 在介绍HashMap之前,为了方便更清楚地理解源码,先大致说说H ...

  6. 用纯Css作三角形

    <style> //向上三角形 .triangle_up{ width:0; height:0; border-left:30px solid transparent; border-ri ...

  7. wp8.1 Study19:通知

    一.通知形式 在windowsphone系统中,通知有很多中形式,如下图 (Tile磁贴在前一博文已复习过,Badge形式与tile类似) 1.Toast 它主要是利用xml文件来编写的,xml代码如 ...

  8. 黑马程序员——OC语言 其他语法

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...

  9. 获取本地soapUI项目路径

    def projectDir = ${projectDir}

  10. hdu 2059

    ps:终于解决了....卡了我好久.最后用了DP.然后还有记忆化搜索优化了一下.终于AC了 思路:要计算dp[n](就是到第n个站的最短时间,也就是最优方案),必须知道dp[0]到dp[n-1] 设j ...