我的Python成长之路---第二天---Python基础(8)---2016年1月9日(晴)
数据类型之字典
一、字典简介
字典dict(dictionary),在其他语言中也成为map,使用键-值(key-value)的形式存储和展现,具有极快的查找速度。
字典的定义
d = {'key':value,...}
字典可以嵌套,value也可以使用列表等数据类型
字典通过键获取键所对应的值
d[key]
二、字典常用方法
1、clear(清除字典所有元素)
代码:
def clear(self): # real signature unknown; restored from __doc__
""" D.clear() -> None. Remove all items from D.
清除所有元素
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.clear()
>>> dic
{}
2、copy(浅拷贝)
代码:
def copy(self): # real signature unknown; restored from __doc__
""" D.copy() -> a shallow copy of D
浅拷贝,返回的是一个新的字典对象
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic2 = dic.copy()
>>> dic2
{'age': 35, 'address': 'beijing china', 'name': 'zhangxiaoyu'}
注意:拷贝和赋值dic2 = dic完全不一样,等到讲到深浅拷贝的时候再来探讨这个问题
3、fromkeys(创建新的字典对象)
代码:
@staticmethod # known case
def fromkeys(*args, **kwargs): # real signature unknown
""" Returns a new dict with keys from iterable and values equal to value.
用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
"""
pass
示例:
>>> dic = dict.fromkeys(['name','age'],10)
>>> dic
{'age': 10, 'name': 10}
4、get(获取键所对应的值)
代码:
def get(self, k, d=None): # real signature unknown; restored from __doc__
""" D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
获取键所对应的值如果存在返回值,如果不存在返回d所定义的值
k:key
d:默认值,如果不存在返回的值
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.get('name')
'zhangxiaoyu'
>>> dic.get('tel','')
''
>>> dic.get('tel')
注意:与d[key]取值不同的是,get方法如果key不存在则返回默认值,如果没定义返回的是None,而d[key]这种方式key不存在则会报错
>>> dic.get('tel')
>>> dic['tel']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'tel'
5、items(返回键值组成的元祖)
代码:
def items(self): # real signature unknown; restored from __doc__
""" D.items() -> a set-like object providing a view on D's items
返回键值组成的元祖列表,也就是同时返回键和值
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.items()
dict_items([('age', 35), ('address', 'beijing china'), ('name', 'zhangxiaoyu')])
6、keys(返回字典的key)
代码:
def keys(self): # real signature unknown; restored from __doc__
""" D.keys() -> a set-like object providing a view on D's keys
返回字典的所有的key
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.keys()
dict_keys(['age', 'address', 'name'])
说明:2.X返回的直接是列表对象,3.X返回的dict_keys对象,但是也能通过in做是否存在的判断或循环
7、pop(删除指定key的元素,并返回key所对应的值)
代码:
def pop(self, k, d=None): # real signature unknown; restored from __doc__
"""
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised
删除指定key的元素,并返回key所对应的值,如果不存在返回默认值
k:key
d:默认值,如果不存在返回的值
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.pop('name')
'zhangxiaoyu'
>>> dic
{'age': 35, 'address': 'beijing china'}
>>> dic.pop('tel','')
''
8、popitem(删除元素)
代码
def popitem(self): # real signature unknown; restored from __doc__
"""
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty.
删除元素并返回删除的元素key和value组成的元祖
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.popitem()
('age', 35)
>>> dic
{'address': 'beijing china', 'name': 'zhangxiaoyu'}
注意:由于字典是无序的,所以使用这个方法删除的不一定是哪个元素,所以慎用
9、setdefault(设置默认值,这个方法要与get方法配合使用相当于get方法的d参数)
代码:
def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
""" D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
设置默认值,这个方法要与get方法配合使用相当于get方法的d参数,同样也适用于d[key]这种取值方法 """
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic.setdefault('tel','')
''
>>> dic.get('tel')
''
>>> dic
{'age': 35, 'tel': '', 'address': 'beijing china', 'name': 'zhangxiaoyu'}
>>> dic['tel']
''
感觉完全是设置了一个新的键值对
10、update(将另一个字典的键值添加到当前字典中)
代码:
def update(self, E=None, **F): # known special case of dict.update
"""
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]
将另一个字典的键值添加到当前字典中
不存在的键直接添加,存在的键将被覆盖
"""
pass
示例:
>>> dic = {'name':'zhangxiaoyu', 'age':35, 'address':'beijing china'}
>>> dic2 = {'tel':'','name':'zhangsan'}
>>> dic.update(dic2)
>>> dic
{'age': 35, 'tel': '', 'address': 'beijing china', 'name': 'zhangsan'}
11、values(返回所有的值)
代码:
def values(self): # real signature unknown; restored from __doc__
""" D.values() -> an object providing a view on D's values
返回字典所有的值
"""
pass
示例:
>>> dic.values()
dict_values([35, 'beijing china', 'zhangxiaoyu'])
说明:2.X返回的直接是列表对象,3.X返回的dict_values对象,但是也能通过in做是否存在的判断或循环
我的Python成长之路---第二天---Python基础(8)---2016年1月9日(晴)的更多相关文章
- 我的Python成长之路---第二天---Python基础(7)---2016年1月9日(晴)
再说字符串 一.字符串的编码 字符串的编码是个很令人头疼的问题,由于计算机是美国人发明的,他们很理所当然的认为计算机只要能处理127个字母和一些符号就够用了,所以规定了一个字符占用8个比特(bit)也 ...
- 我的Python成长之路---第八天---Python基础(25)---2016年3月5日(晴)
多进程 multiprocessing模块 multiprocessing模块提供了一个Process类来代表一个进程对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- 我的Python成长之路---第八天---Python基础(24)---2016年3月5日(晴)
多线程编程 什么是多线程,线程是操作系统能够进行运算调度的最小单位.他包含在进程之中,是进程中的实际运作单位.线程是进程中一个单顺序的空值六,一个进程可以并发多个线程,每个线程可以并行处理不同的任务. ...
- 我的Python成长之路---第八天---Python基础(23)---2016年3月5日(晴)
socketserver 之前讲道德socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我们也可以通过python的多线程等模 ...
- python成长之路——第二天
cpython:c解释器 .pyc(字节码)——机器码 jpython :java解释器 java字节码 ironpython :C#解释器 C#字节码 .... 上面的:编译完之后 ...
- 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)
2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...
- 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)
作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...
- Python成长之路第二篇(1)_数据类型内置函数用法
数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...
- python成长之路第二篇(4)_collections系列
一.分别取出大于66的数字和小于66的数字 小练习:需求要求有一个列表列表中存着一组数字,要求将大于66的数字和小于66的数字分别取出来 aa = [11,22,33,44,55,66,77,88,9 ...
随机推荐
- SQL Server验证的两种方式
1.Windows身份验证:本机连接或者受信的局域网连接(一般在忘记管理员密码或者做系统配置的情况下使用). 2.SQLServer验证:使用用户名.密码验证(推荐使用). 启用方法:以Windows ...
- Oracle数据库的启动和关闭实例
在开始了解oracle数据库的命令之前,先来看一个东西:SQL*PLUS(sqlplus) Oracle的sql*plus是与oracle进行交互的客户端工具.在sql*plus中,可以运行sql*p ...
- php随笔9-thinkphp OA系统 集成UEditor
版本信息:thinkphp 3.1.3 full UEditor 1.4.3.1 utf8-php 1.将EUditor放在项目public目录下. 2.在指定页面加载编辑器 <!-- ...
- 织梦dedecms|文章模型内容页标签
文章标题:{dede:field.title/}文章链接:{dede:field name='arcurl'/}发布时间:{dede:field.pubdate function="MyDa ...
- 51cto运维培训课程
线路图: Linux运维架构师 基础提高篇(120课时) 基础提高篇(240课时) Linux系统基础及系统管理 Shell编程入门及进阶 linux安全管理和企业级安全防范策略 企业级集群/存储专题 ...
- BZOJ 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典
题目 1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 401 Solv ...
- Google瓦片地图算法解析
基本概念: 地图瓦片地址:http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&x=420&y=193& ...
- Codeforces 360C Levko and Strings dp
题目链接:点击打开链接 题意: 给定长度为n的字符串s,常数k 显然s的子串一共同拥有 n(n-1)/2 个 要求找到一个长度为n的字符串t,使得t相应位置的k个子串字典序>s #include ...
- BZOJ 1026: [SCOI2009]windy数( dp )
dp..dp(x, t) 表示共x位, 第x位为t有多少个windy数. 对答案差分, 我们只需统计1 ~ l-1和1 ~ r的windy数数量. 考虑如何计算[1, n]的答案 : 从最高位到最低位 ...
- Opencv2系列学习笔记2(图像的其它操作)
本节主要涉及到图像的领域.算术操作以及如何操作图像感兴趣的区域. 一:邻域操作 以下例子主要对图像进行锐化.基于拉普拉斯算子<后面讨论>.这幅图像的边缘部分将得到放大,细节部分将更加的锐利 ...