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的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...
随机推荐
- ListView常用操作
1.设置ListView只显示一列,并且每加一条记录是向下添加的. ListView添加方法:把View属性改成Details,再Columns属性中添加一列 然后用如下代码即可实现 ListView ...
- Codeforces 474D Flowers (线性dp 找规律)
D. Flowers time limit per test:1.5 seconds memory limit per test:256 megabytes We saw the little gam ...
- SQl 行转列,列转行 (PIVOT,UPIVOT)
1.列转行 表t_pivot 转后效果 方法 1 (常用方法 case when) SELECT buydate, SUM(CASE WHEN type = '生活' THEN typec ...
- 阿里云Redis使用规范
一.键值设计 1.key名设计 (1)[建议]: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)[建议]: 简洁性 ...
- vue -- 脚手架之webpack.dev.conf.js
webpack.dev.conf.js 开发环境模式配置文件: 'use strict'//js按照严格模式执行 const utils = require('./utils')//导入utils. ...
- 关于vuex的项目中数据流动方式
vue的核心是数据驱动,所有数据变更的时机很重要,也就是watch的内容,一般是数据逻辑的操作.在使用vuex的项目中,我们在vuex中只是发请求.拿数据,在视图中来进行逻辑的操作.数据的更新. 1. ...
- 跨域使用onmessage实现方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- BZOJ 高精度开根 JAVA代码
晓华所在的工作组正在编写一套高精度科学计算的软件,一些简单的部分如高精度加减法.乘除法早已写完了,现在就剩下晓华所负责的部分:实数的高精度开m次根.因为一个有理数开根之后可能得到一个无理数,所以这项工 ...
- 通过wireshark,以及python代码收发邮件,了解smtp协议,pop协议工作过程
40返回连接server成功 41.43发送ehlo命令查询server支持命令 返回250 44.46请求认证 server响应235认证成功 47.49发送mail命令发送者邮箱 返回250 ...
- Windows Server 2016 关闭Internet Explorer增强的安全配置
Windows Server 2016 关闭Internet Explorer增强的安全配置 IE11 默认启用 Internet Explorer 增强的安全配置,浏览网页时这个提示十分频繁,是不是 ...