【python学习笔记】4.字典:当索引不好用时

2023-03-14,,

【python学习笔记】4.字典:当索引不好用时

字典是python中唯一内建的map类型

创建:

key可以为任何不可改变的类型,包括内置类型,或者元组,字符串

通过大括号:

phonebook={'alice': '2341', 'beth':'9102'}

通过dict函数

键值对列表做参数

>>> items=[("name", "Gumby"), ("age", 42)]
>>> dict(items)
{'age': 42, 'name': 'Gumby'}

键值对参数

>>> d = dict(name="Gumby", age=42)
>>> d
{'age': 42, 'name': 'Gumby'}

基本字典操作

len(d) 键值对个数
d[k] 取值
d[k]=v 修改value
del d[k],删除键为k的项
k in d,是否存在键为k的项

格式化字符串 %(key)type

>>> phonebook={"beth":"9102", "alice":"2341"}
>>> print "%(beth)s" % phonebook
9102
>>>

字典方法

clear:清除所有项,原地操作,无返回
copy:返回一个具有相同键值对的新字典,这里实现的是浅复制,copy.deepcopy 可以实现深复制

>>> x={"username":"admin", "machines":["foo", "bar", "baz"]}
>>> x
{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
>>> y=x.copy()
>>> y
{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
>>> y["username"]="mlh"
>>> y["machines"].remove("bar")
>>> y
{'username': 'mlh', 'machines': ['foo', 'baz']}
>>> x
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> import copy
>>> z=copy.deepcopy(x)
>>> z
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> z["machines"].remove("foo")
>>> z
{'username': 'admin', 'machines': ['baz']}
>>> x
{'username': 'admin', 'machines': ['foo', 'baz']}
>>>

fromkeys:使用给定的key建立新字典,每个key对应的默认值为None

>>> {}.fromkeys(["name", "age"])
{'age': None, 'name': None}
>>>
>>> dict.fromkeys(["name", "age"], "(unkonwn)")
{'age': '(unkonwn)', 'name': '(unkonwn)'}
>>>

get 安全访问字典,当key不存在的时候返回None

>>> a={}
>>> a['a']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> print a.get("a")
None
>>>

has_key 返回key是否存在

items和iteritems,以列表形式返回字典中的项,列表中的元素为字典中的项,iteritems会返回一个迭代器

keys和iterkeys,以列表形式返回字典中key

pop,获取给定key的值,然后从字典中移除

popitem,弹出一个项

setdefault,获取给定key的值,如果没有则设置并返回默认值

update 参数字典中项会被添加到旧字典中,若有相同的key则进行覆盖

values和itervalues 以列表的形式返回字典中值

【python学习笔记】4.字典:当索引不好用时的相关教程结束。

《【python学习笔记】4.字典:当索引不好用时.doc》

下载本文的Word格式文档,以方便收藏与打印。