一、定义

  字典是一种“key-value”成对出现的数据类型,中间用冒号把key与value隔,不同的数据用逗号隔开,全部数据用大括号括起来

info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}

  注:key值尽量不要写中文,可能会出现不兼容

二、特性

  1.无序性

  2.key值唯一性(无重复)

三、方法

  1.取值(查找、获取)  

print(info['stu1103'])

  通达key值来取。此方法如果字典里没有该键值,会报错(KeyError)。

print(info.get('stu1104'))

  此方法是安全地取值方法。如遇到没有该键值的情况下,输出None,不报错。  

  2.修改

  

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
print(info)
#print(info['stu1103'])
info['stu1103'] = "小泽玛丽亚"
info['stu1104'] = "Cangjingkong"
print(info)

  可以直接通过赋值的方式来修改,如果没有这个key值,就直接增加

  3.删除

del info['stu1101']
info.pop('stu1102')
info.popitem() #随机删除一个,少用

  

  4.判断某个key是否在字典里

print('stu1104' in info)

  返回Ture或False

  注:在python 2.x中的用法是: info.has_key('stu1104'),效果一样

  5.多级字典嵌套的操作

  可以层层嵌套 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
av_catalog['大陆']["1024"][1] = "可以在国内做镜像"
print(av_catalog)

  

  6.其他方法

    6.1   setdefault

av_catalog.setdefault('大陆',{'www.qq.com':[1,2]})  #先到字典找“大陆”,如果有就返回,没有,就创建

    

    6.2   update

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
} dic_a = {
'stu1101': 'Wenxh',
1:10,
2:5,
} info.update(dic_a) #两个字典合并,key值一样的就会被更新,没有的就加进去
print(info)

  

    6.3   items

  把字典转成列表,每条数据是元组。  

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
} dic_a = {
'stu1101': 'Wenxh',
1:10,
2:5,
} info.update(dic_a)
print(info)
print(info.items())

  

dict_items([('stu1101', 'Wenxh'), ('stu1102', 'LongZe Luola'), ('stu1103', 'XiaoZe Maliya'), (1, 10), (2, 5)])

  

    6.4   fromkeys

  初始化一个新字典

dict_b = dict.fromkeys([5,6,7,8])
dict_c = dict.fromkeys([5,6,7,8],'test')
print(dict_b) #{5: None, 6: None, 7: None, 8: None}
print(dict_c) #{5: 'test', 6: 'test', 7: 'test', 8: 'test'}

  一般用这个方法来创建只有一层的字典,多层的字典不要用此方法!

四、循环打印

  

for i in dict_c:
print(i,dict_c[i])

  或者:

for i,j in dict_c.items():
print(i,j)

  数据量大时强烈建议用第一个方法!!

Day2:字典的更多相关文章

  1. day2 字典常用的方法

        字典创建的方式: (1)d1 = {"k1":"v1","k2":"v2","k3":&qu ...

  2. Python之路 day2 字典练习题之 三级菜单

    #Author:ersa ''' 程序: 三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 ''' menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{ ...

  3. python2.0 s12 day2

    s12 day2 视频每节的内容 05 python s12 day2 python编码   1.第一句python代码 python 执行代码的过程 文件读到内存 分析内容 编译字节码  转换机器码 ...

  4. 【DG】Oracle_Data_Guard官方直译

    [DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍   Oracle Data Guard概念和管理10g版本2   Oracle Data Guard ...

  5. DVWA实验之Brute Force(暴力破解)- Low

    DVWA实验之Brute Force-暴力破解- Low     这里开始DVWA的相关实验~   有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...

  6. Oracle错误览表

    Oracle 错误总结及问题解决 ORA     本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html  作者@承影剑 ORA-0 ...

  7. python_way ,day2 字符串,列表,字典,时间模块

    python_way ,day2 字符串,列表,字典,自学时间模块 1.input: 2.0 3.0 区别 2.0中 如果要要用户交互输入字符串: name=raw_input() 如果 name=i ...

  8. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  9. Python之旅Day2 元组 字符串 字典 集合

    元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ...

  10. 跟着ALEX 学python day2 基础2 模块 数据类型 运算符 列表 元组 字典 字符串的常用操作

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...

随机推荐

  1. ListView常用操作

    1.设置ListView只显示一列,并且每加一条记录是向下添加的. ListView添加方法:把View属性改成Details,再Columns属性中添加一列 然后用如下代码即可实现 ListView ...

  2. Codeforces 474D Flowers (线性dp 找规律)

    D. Flowers time limit per test:1.5 seconds memory limit per test:256 megabytes We saw the little gam ...

  3. SQl 行转列,列转行 (PIVOT,UPIVOT)

    1.列转行 表t_pivot 转后效果   方法 1 (常用方法 case when) SELECT     buydate, SUM(CASE WHEN type = '生活' THEN typec ...

  4. 阿里云Redis使用规范

    一.键值设计 1.key名设计 (1)[建议]: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)[建议]: 简洁性 ...

  5. vue -- 脚手架之webpack.dev.conf.js

    webpack.dev.conf.js  开发环境模式配置文件: 'use strict'//js按照严格模式执行 const utils = require('./utils')//导入utils. ...

  6. 关于vuex的项目中数据流动方式

    vue的核心是数据驱动,所有数据变更的时机很重要,也就是watch的内容,一般是数据逻辑的操作.在使用vuex的项目中,我们在vuex中只是发请求.拿数据,在视图中来进行逻辑的操作.数据的更新. 1. ...

  7. 跨域使用onmessage实现方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. BZOJ 高精度开根 JAVA代码

    晓华所在的工作组正在编写一套高精度科学计算的软件,一些简单的部分如高精度加减法.乘除法早已写完了,现在就剩下晓华所负责的部分:实数的高精度开m次根.因为一个有理数开根之后可能得到一个无理数,所以这项工 ...

  9. 通过wireshark,以及python代码收发邮件,了解smtp协议,pop协议工作过程

    40返回连接server成功 41.43发送ehlo命令查询server支持命令 返回250 44.46请求认证  server响应235认证成功 47.49发送mail命令发送者邮箱  返回250 ...

  10. Windows Server 2016 关闭Internet Explorer增强的安全配置

    Windows Server 2016 关闭Internet Explorer增强的安全配置 IE11 默认启用 Internet Explorer 增强的安全配置,浏览网页时这个提示十分频繁,是不是 ...