`
- 浏览:
254227 次
- 性别:
- 来自:
未定
-
1. 字典是 Python 语言中唯一的映射类型。映射类型对象里哈希值(键) 和指向的对象(值)是一对一的关系.
2. 一个字典对象是可变的,它是一个容器类型,能存储任意个数的 Python 对象,其中也包括其他容器类型。字典类型和序列类型容器类(列表、元组)的区别是存储和访问数据的方式不同。
3. 你所能获得的有序集合只能是字典中的键的集合或者值的集合。
方法 Keys() 或 values() 返回一个列表,该列表是可排序的。
你还可以用 items()方法得到包含键、值对的元组的列表来排序。
由于字典本身是哈希的,所以是无序的。
4. 创建字典和给字典赋值
>>> dict1 = {}
>>> dict2 = {'name': 'earth', 'port': 80}
>>> dict1, dict2
({}, {'port': 80, 'name': 'earth'})
>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}
>>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}
>>> ddict = {}.fromkeys(('x', 'y'), -1)
>>> ddict
{'y': -1, 'x': -1}
5. 如何访问字典中的值
>>> dict2 = {'name': 'earth', 'port': 80}
>>>> for key in dict2.keys():
... print 'key=%s, value=%s' % (key, dict2[key])
从 Python 2.2 开始, 你可以不必再用 keys()方法获取供循环使用的键值列表了。 可以
用迭代器来轻松地访问类序列对象(sequence-like objects),比如字典和文件。
>>> for key in dict2:
... print 'key=%s, value=%s' % (key, dict2[key])
6. 如果我们想访问该字典中的一个数据元素,而它在这个字典中没有对应的键,
将会产生一个KeyError错误:
检查一个字典中是否有某个键的最好方法是用字典的 has_key()方法, 或者另一
种比较好的方法就是从 2.2 版本起用的,in 或 not in 操作符。 has_key() 方法将会在未来的Python 版本中弃用,所以用 in 或 not in 是最好的方法。
>>> 'server' in dict2 # 或 dict2.has_key('server')
False
7. 字典中的键必须是可哈希的, 所以数字和字符串可以作为字典中的键, 但是列表和其他字典不行。
>>> print 'host %(name)s is running on port %(port)d' %dict2
host venus is running on port 6969
8. 避免使用内建对象名字作为变量的标识符
请不要用 dict, list,file, bool, str, input, len 这样的内建类型为变量命名.
9. 内建函数 hash()本身并不是为字典设计的方法,但它可以判断某个对象是否可以做一个字典的键。将一个对象作为参数传递给 hash(), 会返回这个对象的哈希值。 只有这个对象是可哈希的,才可作为字典的键 (函数的返回值是整数,不产生错误或异常)。
如果用比较操作符来比较两个数值,发现它们是相等的,那么即使二者的数据类型不同, 它
们也会得到相同的哈希值。
如果非可哈希类型作为参数传递给 hash()方法,会产生 TypeError 错误(因此,如果使用这样的对象作为键给字典赋值时会出错):
>>> hash([])
Traceback (innermost last): File "<stdin>", line 1, in ?
TypeError: list objects are unhashable
10. 字典类型方法
dict.clear () 删除字典中所有元素
dict.copy () 返回字典(浅复制)的一个副本
dict.fromkeys (seq,val=None)
创建并返回一个新字典,以 seq 中的元素做该字典的键,
val 做该字典中所有键对应的初始值(如果不提供此值,则默认为 None)
dict.get(key,default=None)
对字典 dict 中的键 key,返回它对应的值 value,
如果字典中不存在此键,则返回 default 的值(注意,参数 default 的默认值为 None)
dict.has_key(key)
如果键(key)在字典中存在,返回 True,
否则返回 False. 在 Python2.2版本引入 in 和 not in 后,此方法几乎已废弃不用了,但仍提供一个可工作的接口。
dict.items() 返回一个包含字典中(键, 值)对元组的列表
dict.keys() 返回一个包含字典中键的列表
dict.iter()
方法 iteritems(), iterkeys(), itervalues()
与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
dict.popc(key[, default])
和方法 get()相似,如果字典中 key 键存在,删除并返回 dict[key], 如果 key 键不存在,且没有给出 default 的值,引发 KeyError 异常。
dict.setdefault(key,default=None)
和方法 set()相似,如果字典中不存在 key 键,
由 dict[key]=default 为它赋值。
dict.update(dict2) 将字典 dict2 的键-值对添加到字典 dict
dict.values() 返回一个包含字典中所有值的列表
11. 所有不可变的类型都是可哈希的,因此它们都可以做为字典的键。
一个要说明的是问题是数字:值相等的数字表示相同的键。换句话来说,整型数字 1 和 浮点数 1.0 的哈希值是相同的,即它们是相同的键。
12. 数学上, 把 set 称做由不同的元素组成的集合,集合(set)的成员通常被称做集合元素(setelements)。Python 把这个概念引入到它的集合类型对象里。集合对象是一组无序排列的可哈希的值.
13. 和其他容器类型一样,集合支持用 in 和 not in 操作符检查成员, 由 len() 内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,你不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。集合(sets)有两种不同的类型,可变集合(set) 和 不可变集合(frozenset)。
14. 集合被创建的唯一方法 - 用集合的工厂方法 set()和 frozenset():
>>> s = set('cheeseshop')
>>> s
set(['c', 'e', 'h', 'o', 'p', 's'])
>>> t = frozenset('bookshop')
>>> t
frozenset(['b', 'h', 'k', 'o', 'p', 's'])
>>> s.add('z')
>>> s.update('pypi')
>>> s.remove('z')
>>> s -= set('pypi')
>>> s | t
>>> s & t
>>> s - t
>>> s ^ t
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包...
收集了很久的Window64位Python扩展包,是python的开发必备,列表如下,pycrypto-2.6.win64-py2.7\pywin32-216.win64-py2.7\PyYAML-3.10.win64-py2.7\pyzmq-2.1.11.win64-py2.7\MySQL-python-1.2.3.win64-py2.7\...
下载DjangoUeditor,发现不支持Python3.x,经过修改,在Python2.X(测试环境为Python2.6.6 + django-1.6.5 和Python2.7.8 + django-1.6.5)和Python3.X(测试环境为Python3.4.1 + django-1.6.5)下完美支持 下载...
Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf ...
第2章 Python环境安装;第3章 理解什么是写代码与Python的基本类型;第4章 Python中表示“组”的概念与定义;第5章 变量与运算符;第6章 分支、循环、条件与枚举;第7章 包、模块、函数与变量作用域;第8章 Python...
PIP20.0.2安装包 适用于python2.x and python3.x 命令:pip install pip-20.0.2-py2.py3-none-any.whl
统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于Python算法实现源码.zip 统计学习方法笔记-基于...
python3.x 爬取新浪新闻-国内新闻的时间,标题,详细内容链接
Python学习笔记--皮大庆,非常适合零基础入门。对应英文版本《How to think like a computer scientist》
2010-09-07 12:43 220,160 boost_python-vc90-mt-1_44.dll 2010-09-07 12:43 189,272 boost_python-vc90-mt-1_44.lib 2010-09-07 12:43 514,048 boost_python-vc90-mt-gyd-1_44.dll 2010-09-07 12:43 190,964 boost_...
opencv_python-3.4.2.16-cp37-cp37m-win_amd64.whl,方便大家下载,3.4.3以后有些算法被申请专利了,不是很好搞,提供3.4.2版的方便大家学习
(错) 3、Python 3.x和Python 2.x唯⼀的区别就是:print在Python 2.x中是输出语句,⽽在Python 3.x中是输出函数。(错) 4、在Windows平台上编写的Python程序⽆法在Unix平台运⾏。(错) 5、不可以在同⼀台计算机上...
通过官方网站https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz下载太慢,特提供此资源
python-3.9.13-amd64.exe windows安装包,x64
python_dateutil-2.4.2-py2.py3-none-any.whl
python-keystone-2013.2.3-3.el6.noarch.rpm python-keystoneclient-0.7.1-2.el6.noarch.rpm python-kombu-1.4.1-1.el6.rf.noarch.rpm python-ldap-2.3.10-1.el6.x86_64.rpm python-libguestfs-1.20.11-2.el6.x86_64...
某机构Python大数据教程文字版,包含笔记讲义代码等资料,本次使用了SeeYueSalt主题导出PDF,更清爽规范 目录: 00-代码-Python基础-8.pdf 00-笔记-Python基础-8.pdf 00-讲义-Python基础-8.pdf 01-代码-Python进阶...
dlib 安装包 适用环境:windows x64 Python版本:3.9.X 安装方式:pip install dlib-19.22.99-cp39-cp39-win_amd64.whl