一、定义

  字典是一种“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. 【玲珑杯 round#18 B】图论你先敲完模板

    [Link]:http://www.ifrog.cc/acm/problem/1146 [Description] [Solution] 设f[i]表示在第i个点休息的话最少需要的体力值; f[i]= ...

  2. POJ——T3160 Father Christmas flymouse

    Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 3496   Accepted: 1191 缩点,然后每个新点跑一边SPFA ...

  3. swift菜鸟入门视频教程-12-21讲

    前段时间录制的swift教程.一直懒就没有发出来,有些教程是在xcode beta2的时候录制的,所以可能如今不太适合了,可是还是会有点帮助,懒了不想写太多的东西了,基本上就是依照官方文档上面的章节做 ...

  4. ACM-康托展开+预处理BFS之魔板——hdu1430

    魔板 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  5. Log4j2 与 SpringMVC 整合

    log4j2不仅仅是log4j的简单升级,而是整个项目的重构.官网地址:http://logging.apache.org/log4j/2.x/,大家能够从官网的介绍看出它相比log4j第1代的种种长 ...

  6. Springboot优化

    https://www.cnblogs.com/chen110xi/p/6198481.html

  7. Linux下ping命令、traceroute命令、tracert命令的使用

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...

  8. 75.《nodejs开发指南》express4.x版-微博案例完整实现

    转自:https://blog.csdn.net/cgwcgw_/article/details/39317587 完整代码下载 https://github.com/haishangfeie/wei ...

  9. CSS盒子模型图

    下面这张图,是W3C标准的CSS盒子模型: 由上图可以清楚的看出各个部分的CSS属性.

  10. 51.cgi网站后门

    运行截图: html开发: <html> <body> <form id="form" name="form" method=&q ...