Day2:字典
一、定义
字典是一种“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:字典的更多相关文章
- day2 字典常用的方法
		字典创建的方式: (1)d1 = {"k1":"v1","k2":"v2","k3":&qu ... 
- Python之路 day2 字典练习题之 三级菜单
		#Author:ersa ''' 程序: 三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 ''' menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{ ... 
- python2.0 s12 day2
		s12 day2 视频每节的内容 05 python s12 day2 python编码 1.第一句python代码 python 执行代码的过程 文件读到内存 分析内容 编译字节码 转换机器码 ... 
- 【DG】Oracle_Data_Guard官方直译
		[DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍 Oracle Data Guard概念和管理10g版本2 Oracle Data Guard ... 
- DVWA实验之Brute Force(暴力破解)- Low
		DVWA实验之Brute Force-暴力破解- Low 这里开始DVWA的相关实验~ 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ... 
- Oracle错误览表
		Oracle 错误总结及问题解决 ORA 本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html 作者@承影剑 ORA-0 ... 
- python_way ,day2 字符串,列表,字典,时间模块
		python_way ,day2 字符串,列表,字典,自学时间模块 1.input: 2.0 3.0 区别 2.0中 如果要要用户交互输入字符串: name=raw_input() 如果 name=i ... 
- Day2 - Python基础2 列表、字典、集合
		Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ... 
- Python之旅Day2  元组 字符串 字典 集合
		元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ... 
- 跟着ALEX 学python day2 基础2  模块  数据类型   运算符 列表 元组  字典  字符串的常用操作
		声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ... 
随机推荐
- Spark 性能相关參数配置具体解释-任务调度篇
			作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完好, ... 
- R中读取文件,找不到路径问题 No such file or directory
			R中读取文件,找不到路径问题 No such file or directory 近日,读取文件时.出现例如以下问题 > passenger = read.csv('internationa ... 
- HDU 2563 统计问题 (DFS + 打表)
			统计问题 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ... 
- OpenCASCADE解非线性方程组
			OpenCASCADE解非线性方程组 eryar@163.com Abstract. 在科学技术领域里常常提出求解非线性方程组的问题,例如,用非线性函数拟合实验数据问题.非线性网络问题.几何上的曲线曲 ... 
- vim基础学习之搜索功能
			当我们使用vim看源码的时候,我们可能会碰到一个方法或者变量,我们想要知道这个变量在其他地方的使用情况.这时候我们经常的做法就是退出当前的文件,或者是重新切换一个终端,然后使用grep或者find等s ... 
- rtsp和sdp协议简介
			RTSP是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议. 实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体,如音频和视频.尽管 ... 
- C/C++(基础编码-补码详解)
			两个数的交换 1.引入第三者. 2.求和运算,求差.(这样会产生内存溢出) 3.异或运算 a = a^b; b = a^b; a = a^b; 8b(bit位) = 1B(Byte=字节)//最小单位 ... 
- groupadd---创建一个新的工作组
			groupadd命令 groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中. 语法 groupadd(选项)(参数) 选项 -g:指定新建工作组的id: -r:创建系统工 ... 
- 洛谷——P1307 数字反转
			https://www.luogu.org/problem/show?pid=1307#sub 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原 ... 
- 洛谷 P2437 蜜蜂路线
			P2437 蜜蜂路线 题目描述 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线? 输入输出格式 ... 
