前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[快学Python3]Dictionary(字典)

[快学Python3]Dictionary(字典)

作者头像
苦叶子
发布2018-04-09 10:14:38
1.3K0
发布2018-04-09 10:14:38
举报
文章被收录于专栏:开源优测开源优测

概述

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

代码语言:javascript
复制
dict = {u"key1": u"value1", u"key2": u"value2"}

或是这样创建:

代码语言:javascript
复制
dict = {12: u"deeptest", u"weixin": u"开源优测"}

内置函数

Python中常用的内置函数有:

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

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

代码语言:javascript
复制
# -*- 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类型

执行结果如下:

代码语言:javascript
复制
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值

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

代码语言:javascript
复制
# -*- 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)

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

遍历、修改、删除

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

代码语言:javascript
复制
# -*- 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可以是数字、字符串甚至元组,但不可以用列表
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内置函数
  • 字典方法
  • 遍历、修改、删除
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档