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的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...
随机推荐
- C#变量引用与全局变量
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 网页中插入javascript的几种方法
网页中插入javascript的方法常见的有两种: 一.直接使用html标记 JavaScript 可以出现在 html的任意地方.使用标记<script>…</script> ...
- pipPython运维日记
一 Python 工作环境管理 1.1 使用 pyenv 管理不同的Python 版本 克隆项目安装 git clone https://github.com/yyuu/pyenv.git ~/.py ...
- Kinect 开发 —— ColorBasic
创建一个Kincet项目通常需要: 1. 创建一个VS项目,一般为了展示通常创建一个wpf项目. 2. 添加Microsoft.Kinect.dll引用,如果是早期版本的SDK,这个名称可能不同. 3 ...
- OpenCV —— 轮廓
把检测出的边缘像素组装成轮廓 —— cvFindContours OpenCV 使用内存存储器来统一管理各种动态对象的内存.内存存储器在底层被实现为一个有许多相同大小的内存块组成的双向链表 内存储 ...
- jQuery过滤选择器具体解释
基本过滤选择器 选取第一个元素(:first) //选择第一个div元素. $('#btn1').click(function(){ $('div:first').css("backgrou ...
- 项目EasyUi和JS中遇到的问题总汇
近期因为项目用到EasyUi,曾经仅仅是听过,可是没有详细用过.仅仅能一边学一边做.如今将做的过程中遇到的一些难点总结例如以下,以备后用: EsayUi使用: Json格式:key:value,key ...
- start_kernel----lcokdep_init
void lockdep_init(void) { int i; /* * Some architectures have their own start_kernel() * code which ...
- jquery constructor
function F(){ this.a = "aaa"; alert(111); } F.prototype = { constructor:F, } var f = new F ...
- try {}里有一个return语句 finally执行顺序
先看例子 package example; class Demo{ public static void main(String args[]) { int x=1; System.out.print ...