python之字典

xiaoxiao2021-02-28  109

映射中的每个元素都有一个专业的名字,叫做键。字典是Python中唯一内建的映射类型,下来我们对其进行详细介绍: (1)键类型 字典(dict)是一个存放无序的键值映射(key/value)类型数据的容器字典的键可以是数 字、字符串或者是元组,键必须唯一。在Python中,数字、字符串和元组都被设计成不可变类型,而 常见的列表以及集合(set)都是可变的,所以列表和集合不能作为字典的键。键可以为任何不可变类型,这正是Python中的字典最强大的地方。 (2)创建 >>> d = {2:"二",3:'san'} >>> type(d) <type 'dict'> >>> d[1] = 1 >>> d {1: 1, 2: '\xb6\xfe', 3: 'san'} >>> d = {} >>> d[1] = 1 >>> d {1: 1} >>> d['cat'] = 'Lucy' >>> d {1: 1, 'cat': 'Lucy'} dict3 = dict([("name","kitty"),("age",18)]) #利用dict函数将列表转换成字典     dict4 = dict(name='kitty',age=18)      #利用dict函数通过关键字参数转换为字典     dict5 = {}.fromkeys(["name","age"])   #利用fromkeys函数将key值列表生成字典,对应的值为None  {'age': None, 'name': None}  (3)查找 dict是通过key来查找value,表示的是意义对应的关系,可以通过d[key]的方式来访问dict: >>> d['cat'] 'Lucy' (4)遍历 >>> d = {} >>> d['cat'] = 'Lucy' >>> d['dog'] = 'Ben' >>> for key in d:     print(key + ":",d[key]) 结果 cat: Lucy dog: Ben (5)修改与删除 >>> d = {2:"二",3:'san'} >>> type(d) <type 'dict'> >>> d[1] = 1 >>> d {1: 1, 2: '\xb6\xfe', 3: 'san'} >>> d[2]='er' >>> d {1: 1, 2: 'er', 3: 'san'} >>> d.pop(1) 1 >>> d {2: 'er', 3: 'san'} (6)获取字典相关操作 >>> [x for x in dir({}) if not x.startswith("__")]#查看字典的所有公共方法 ['clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues'] #【添加元素】   dict1 = {}  dict1["mykey"] = "hello world"   #直接给一个不存在的键值对赋值 即时添加新元素     dict1[('my','key')] = "this key is a tuple"  #字典的键可以是任何一中不可变类型,例如数字、字符串、元组等     #【键值对个数】  print len(dict1)     #【检查是否含有键】  print "mykey" in dict1     #True 检查是否含有键为mykey的键值对  print "hello" in dict1     #False     #【删除】  注: dict.clear()                          删除字典中所有元素       dict.copy()                          返回字典(浅复制)的一个副本       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.values()                        返回一个包含字典中所有值的列表       dict.iter()                            方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代器,而不是一个列表。       dict.pop(key[, default])         和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。       dict.setdefault(key,default=None)  和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。       dict.setdefault(key,default=None)   和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值 (7)比较字典 当比较列表的时候,如果项的顺序是不完全相同,python会认为这些列表不同。对字典不是来说,不是这样。 >>> d1={1:1,2:2,3:3} >>> d2={1:1,3:3,2:2} >>> d1==d2 True (8)优缺点 dict的第一个特点是查找速度快,而且查找的速度与元素的个数无关,而list的查找速度是随着元素的增加而逐渐下降的;第二个特点是 存储的key-value序对是没有顺序的;第三个特点是作为key得到元素是不可变的,所以list不能作为key。 dict的缺点是占用内存大,还会浪费很多内容。
转载请注明原文地址: https://www.6miu.com/read-58680.html

最新回复(0)