Python学习进程(10)字典
本节介绍Python中的字典:是另一种可变容器模型,且可存储任意类型对象。
(1)字典简介:
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
注意:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
(2)字典的操作:
包括创建字典、访问字典元素、修改字典的值、删除字典指定元素,删除字典:
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
#1.创建字典:
>>> dic={'name':'MenAngel','age':19,'sex':'男'};
>>> print dic
{'age': 19, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
#2.修改字典中元素
>>> dic['name']='sunjimeng'
#3.访问字典中指定元素
>>> print dic
{'age': 19, 'name': 'sunjimeng', 'sex': '\xc4\xd0'}
>>> dic['name']
'sunjimeng'
>>> dic
{'age': 19, 'name': 'sunjimeng', 'sex': '\xc4\xd0'}
#4.删除字典中指定元素
>>> del dic['sex']
>>> dic
{'age': 19, 'name': 'sunjimeng'}
#5.删除字典中所有元素
>>> dic.clear()
>>> dic
{}
#6.删除字典
>>> del dic
(3)字典键的特性:
注意:字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住:
2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行:
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> dic={'name':'MenAngel','age':19,'name':'sunjimeng'}
>>> dic
{'age': 19, 'name': 'sunjimeng'}
#键可以用数字,字符串,可以用元组
>>> dic[4]=346
>>> dic
{'age': 19, 4: 346, 'name': 'sunjimeng'}
>>> dic[('abc',20)]='sex'
>>> dic
{('abc', 20): 'sex', 'age': 19, 4: 346, 'name': 'sunjimeng'}
#但不能用列表
>>> dic[[20,]]=20
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
(4)字典内置函数或方法:
1)字典内置函数:
#1.第一种字典初始化方式:
>>> dic1={}
>>> dic1['name']='MenAngel';
>>> dic1['age']=20;
>>> dic1['sex']='男';
#2.第二种字典初始化方式
>>> dic2={'name':'MenAngel','age':20,'sex':'男']
>>> dic1
{'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
>>> dic2
{'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
>>> cmp(dic1,dic2)
0
>>> len(dic1)
3
>>> str(dic1)
"{'age': 20, 'name': 'MenAngel', 'sex': '\\xc4\\xd0'}"
>>> type(dic1)
<type 'dict'>
2)Python字典的内置方法:
>>> dict1={'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
>>> dict2=dict1.copy()
>>> list1=dict1.keys()
>>> list2=dict1.values()
>>> dict1.has_key('name')
True
>>> dict1,dict2
({'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'})
>>> list1,list2
(['age', 'name', 'sex'], [20, 'MenAngel', '\xc4\xd0'])
>>> dict1['name']='sunjimeng'
>>> dict1,dict2
({'age': 20, 'name': 'sunjimeng', 'sex': '\xc4\xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'})
>>> dict1.update(dict2)
>>> dict1,dict2
({'name': 'MenAngel', 'age': 20, 'sex': '\xc4\xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'})
>>> dict.setdefault('abc','')
20
>>> dict1.setdefault('abc','')
''
>>> dict1.setdefault('abc','')
''
>>> dict1.items()
[('abc', ''), ('name', 'MenAngel'), ('age', 20), ('sex', '\xc4\xd0')]
Python学习进程(10)字典的更多相关文章
- Python学习进程
1周第1天 主要是变量的学习(11月8日) 1.1 python安装(win和linux下)1.2 ipython安装及使用1.3 变量的定义1.4 变量赋值1.5 运算符(赋值.算术.关系.逻辑)1 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Python学习4(字典的内存分布)
1.字典:是python数据类型之一,字典通过花括号来包含数据项,字典的每个元素由2个部分组成,键:值,字典是根据键来找对应的值. data = {"name": "Et ...
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...
- python 学习笔记 10 -- 正則表達式
零.引言 在<Dive into Python>(深入python)中,第七章介绍正則表達式,开篇非常好的引出了正則表達式,以下借用一下:我们都知道python中字符串也有比較简单的方法, ...
- Python学习进程(12)模块
模块让你能够有逻辑地组织你的Python代码段. (1)python模块: 模块化的好处: 1.把相关的代码分配到一个模块里能让你的代码更好用,更易懂. 2.模块也是Python对象, ...
- Python学习进程(3)Python基本数据类型
本节介绍在Python语法中不同的变量数据类型. (1)基本数据类型: >>> a=10; >>> b=10.0; >>> c=T ...
- Python学习笔记之字典
一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...
- python学习笔记10(Python的内存管理)
用这张图激励一下自己,身边也就只有一位全栈数据工程师!!! 32. Python的内存管理 1. 对象的内存使用 对于整型和短字符串对象,一般内存中只有一个存储,多次引用.其他的长字符串和其他对象 ...
随机推荐
- Data Replication in a Multi-Cloud Environment using Hadoop & Peer-to-Peer technologies
http://fbevmware.blogspot.com/2013/12/data-replication-in-multi-cloud.html 要FQ... —————————————————— ...
- Memcached 常见的问题
memcached是怎么工作的? Memcached的奇妙来自两阶段哈希(two-stage hash).Memcached就像一个巨大的.存储了非常多<key,value>对的哈希表. ...
- android 细节之 AndroidRuntimeException:This message is already in use
今天在做项目处理消息队列的时候.遇到了这样一个问题.一个异常.AndroidRuntimeException:This message is already in use. 我当时的详细业务需求情境为 ...
- 第二章----python函数
第一节:调用函数 1.函数是什么? 函数是组织好的,可以重复利用的. 2.为什么要用到函数? 提高应用的模块性,提高重复利用率.指的是:多个文件中可能都要用到该函数,直接拿来调用就行,不用在重复写一个 ...
- 多个 python的pip版本选择
如果你电脑里面装了多个版本的python python3 -m pip instatll xlutilspython2 -m pip instatll xlutils 加载新的pippython -m ...
- CodeIgniter框架——源码分析之Config.php
CI框架的配置信息被存储在$config数组中,我们可以添加自己的配置信息或配置文件到$config中: $this->config->load('filename'); //加载配置文件 ...
- JavaScript Observer Pattern
var Users = { list: [], listeners: {}, add: function(name) { this.list.push({name: name}); this.disp ...
- 《从零开始学Swift》学习笔记(Day 28)——总结使用问号(?)和感叹号(!)
原创文章,欢迎转载.转载请注明:关东升的博客 在使用可选类型和可选链时,多次使用了问号(?)和感叹号(!),但是它们的含义是不同的,下面我来详细说明一下. 1. 可选类型中的问号(?) 声明这个类型是 ...
- #1560 : H国的身份证号码II(dp+矩阵快速幂)
#1560 : H国的身份证号码II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位的正整数(首位不能是0).此外,由于防伪需要,一个N位正整 ...
- Springboot 1.5.x版本上读取自定义配置文件问题
原来的解决方案: 现在1.5.x以后取消了location地址 1.5以后解决方案: