[快学Python3]Dictionary(字典)

概述

Dictionnary(字典)是Python最常用的数据类型,它使用方括号{}来标识,其元素为key-value对应,key与value用冒号:分割开,下面我们看一个基本的字典创建示例:

dict = {u"key1": u"value1", u"key2": u"value2"}

或是这样创建:

dict = {12: u"deeptest", u"weixin": u"开源优测"}

内置函数

Python中常用的内置函数有:

  • len 用于计算字典元素的个数, 即key的总数
  • str 输出字典,即以可打印的字符串输出字典
  • type 返回变量的类型

下面我们一起看看上述三个函数如何应用于字典的实例代码:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":    
    # 字典基本示例
    dict = {u"DeepTest": u"开源优测", u"book": u"快学Python3"}    
    
    # 计算字典的长度
    print(len(dict))    
    
    # 以字符方式输出字典,即将字典转换成字符串
    str_d = str(dict)
    print(str_d)
    print(dict)    
    
    # 判断类型
    print(type(dict)) # 字典类型
    print(type(str_d)) # 字符串str类型

执行结果如下:

2
{'DeepTest': '开源优测', 'book': '快学Python3'}
{'DeepTest': '开源优测', 'book': '快学Python3'}
<class 'dict'>
<class 'str'>

字典方法

在python中,有大量的方法用于字典的处理,下面我们看看示例:

  • clear 清空字典
  • copy 复制字典
  • fromkeys 以序列作为kye创建一个新字典,value为所有键对应的初始值
  • get 返回指定key的value,如果key不存在,则返回默认值
  • in 判断key是否存在,是则返回True,否则返回False
  • items 返回可遍历的的元组,元组的元素为(key,value)形式
  • keys 返回字典的所有key
  • setdefault 如果key存在,则返回其对应的value,否则将该key和默认值插入到字典中,并返回默认值
  • update 更新字典
  • values 返回字典的所有value值

下面我们一起看看上述方法的实际应用:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"字典方法应用示例")

    dict_demo = {u"DeepTest": u"开源优测", u"ebook": u"快学Python3"}
    tup1 = [1, 2, 3, 4]    
    
    # copy复制字典
    dict_cp = dict_demo.copy()
    print(dict_demo)
    print(dict_cp)    
    
    # fromkeys创建字典
    dict_new = dict.fromkeys(tup1, u"value")
    print(dict_new)    
    
    # get获取指定key的value
    value1 = dict_demo.get(u"DeepTest", u"我是默认值")
    value2 = dict_demo.get(u"Python3", u"我是默认值")
    print(value1)
    print(value2)    
    
    # in, 判断key是否存在
    key = u"DeepTest"
    result1 = key in dict_demo
    result2 = key in dict_new
    print(result1)
    print(result2)    
    
    # items, 以元组形式返回字典所有的(key, value)
    items = dict_demo.items()
    print(items)    
    
    # keys 以列表形式返回字典所有的key
    keys = dict_demo.keys()
    print(keys)    
    
    # setdefault, 如果key存在,则返回其对应的value,
    # 否则将该key和默认值插入到字典中,并返回默认值
    set_result1 = dict_demo.setdefault(u"DeepTest", u"设置值")
    set_result2 = dict_demo.setdefault(u"我是key", u"我是value")
    print(set_result1)
    print(set_result2)
    print(dict_demo)    
    
    # update, 更新字典
    dict_demo.update(dict_new)
    print(dict_demo)    
    
    # values,返回字典中所有的value
    values = dict_demo.values()
    print(values)

具体的运行结果,请自行运行查看。

遍历、修改、删除

下面我们一起看看如何对字典进行遍历、修改、删除操作。

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"字典遍历、修改、删除示例")
    dict_demo = {u"DeepTest": u"开源优测", u"ebook": u"快学Python3"}    
    
    # 遍历 方法1
    for (key, value) in dict_demo.items():
        print("%s : %s" % (key, value))    

    # 遍历 方法2
    for key in dict_demo.keys():
        print("%s : %s" % (key, dict_demo[key]))    

    # 修改
    dict_demo[u"ebook"] = u"修改后的值"
    print(dict_demo)    
    
    # 删除指定元素
    del dict_demo[u"ebook"]
    print(dict_demo)    

    # 清空字典
    dict_demo.clear()
    print(dict_demo)

小结

  • 字典的value可以存储任何类型Python对象,即可以是标准的类型,也可以是我们自定义的类型,但key不可以。
  • 字典的key是唯一的,不可以重复
  • 字典的key可以是数字、字符串甚至元组,但不可以用列表

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

python 内置函数

基本的数据操作基本都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本IO操作,然后就是对于语言自身的反射操作,还有就是字符串操作。

13520
来自专栏海天一树

小朋友学C++(10):子类构造函数调用父类构造函数

从哲学层面来看,子类会继承父类除private以外的所有成员。 因为构造函数是公有的,所以理所当然地会被子类继承。 程序1: #include <iostrea...

28660
来自专栏锦小年的博客

Python学习笔记3.2-python内置函数大全

学习python不可避免的首先要了解python的内置函数,熟悉了这些以后可以给编程带来很大的方便。 1、数学运算类 函数名 函数功能 备注 abs...

26690
来自专栏我的博客

插入排序

原理: 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,...

25660
来自专栏土豆专栏

Java面试之关键字

finalize()是Object的protected方法,子类可以覆盖该方法来实现资源清理工作,GC在回收对象之前调用该方法。

231100
来自专栏noteless

-1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态

面向对象把功能逻辑封装到类本身,用对象去调用功能 持有数据,结构更加自然,也更符合人们的思维习惯

10410
来自专栏calmound

Javascript数组

定义    定义空数组       var arr = new Array();       var arr = [];    定义一个包含1,2,3的数组  ...

35260
来自专栏Python小屋

Python常用运算符含义与用法演示

+运算符除了用于算术加法,还可以用于列表、元组和字符串的合并或连接,生成新对象: >>> 3 + (3+4j) #整数和复数相加 (6+4...

27940
来自专栏程序员互动联盟

【java基础】匿名类

昨天后台的一个小伙伴提到了,java里面的匿名类,这个概念在平常java码代码的时候用的特别多,所以找了一篇介绍表述比较清晰的文章分享给大家,能极大的简化代码量...

37470
来自专栏java初学

5.7 (2)反射举例

385120

扫码关注云+社区

领取腾讯云代金券