dict 称作字典(dictionary)。
常见的形式
dict = {'a':1,'b':2} 单层key,value形式的字典
dict = {'mans':{'a':1,'b':2}} 嵌套字典
key-value 键值对的数据的集合
非线性结构,可迭代,可变的,无序的,key不重复,key必须是可hash的
构造方法
>>> dict = {}
{}
>>> dict = dict.fromkeys(['a','b'])
{'a':None,'b':None}
>>> dict = dict(zip(["a","b"],["1","2"]))
{'a':'1','b':'2'}
>>> dict = dict(a="1",b="2")
{'a':'1','b':'2'}
字典元素的访问
d [key]
返回key对应的值value
key不存在抛出KeyError异常
get(key[,default])
返回key对应的值value
key不存在返回缺省值,如果没有设置缺省值就返回None
setdefault(key[,default])
返回key对应的值value
key不存在,添加kv对,value设置为default,并返回default,如果default没有设置,缺省为None
字典增加和修改
d [key] = value
将key对应的值修改为value
key不存在添加新的kv对
update([other])返回None,
使用另一个字典的kv对更新本字典,也可以使用一个可迭代对象
key不存在,就添加
key存在,覆盖已存在的key对应的值
就地修改
字典的删除
pop(key[,default])
key存在,移除它,并fanhui它的value
key不存在,返回给定的default
default未设置,key不存在则抛出KeyError异常
popitem()
移除并返回一个任意的键值对
字典为empty,抛出KeyError异常
clear()
清空字典
字典遍历
for ... in dict
遍历key
for key in dict:
print(key)
for k in d . keys():
print(k)
遍历value
for v in d . values():
print(v)
遍历items
for item in d . items():
print(item)
for item in d . items():
print(item[0],item[1])
for k,v in d . items():
print(k,v)
for k,_ in d . items():
print(k)
补充知识
一: dictionary 操作:
Dictionary:定义了键和值之间一对一的关系,在 Python 中,变量可以任意取名,并且 python 在内部会记录下其数据类型。
1.定义 Dictionary:
>>> d = {"server":"mpilgrim", "database":"master"}
>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["server"]
'mpilgrim'
>>> d["database"]
'master'
新 dictionary,它有两个元素,将其赋给变量 d 。每一个元素都是一个 key-value 对;整个元素集合用大括号括起来。
'server' 是一个 key,它所关联的值是通过 d["server"] 来引用的,为 'mpilgrim'。
'database' 是一个 key,它所关联的值是通过 d["database"] 来引用的,为 'master'。
可以通过 key 来引用其值,但是不能通过值获取 key,
>>> d["mpilgrim"]
Traceback (innermost last):
KeyError: mpilgrim
2.修改 Dictionary
>>> d["database"] = "pubs"
>>> d
{'server': 'mpilgrim', 'database': 'pubs'}
>>> d["uid"] = "sa"
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
一个 dictionary 中不能有重复的 key。给一个存在的 key 赋值会覆盖原有的值。Dictionary 没有元素顺序的概念,它们只是序偶的简单排列。dictionary 的 key 是大小写敏感的。
>>> d = {}
>>> d["key"] = "value"
>>> d["key"] = "other value" (1)
>>> d
{'key': 'other value'}
>>> d["Key"] = "third value" (2)
>>> d
{'Key': 'third value', 'key': 'other value'}
为一个已经存在的 dictionary key 赋值,将简单覆盖原有的值。这不会为一个已经存在的 dictionary key 赋值,因为在 Python 中是区分大小写的,也就是说 'key' 与 'Key' 是不同的。所以这种情况将在 dictionary 中创建一个新的 key-value 对。Dictionary 不只是用于存储字符串。Dictionary 的值可以是任意数据类型,包括字符串、整数、对象,甚至其它的 dictionary。在单个 dictionary 里,dictionary 的值并不需要全都是同一数据类型,可以根据需要混用和匹配。
3.dictionary 中删除元素
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master',42: 'douglas', 'retrycount': 3}
>>> del d[42] (1)
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d.clear() (2)
>>> d
{}
del 允许您使用 key 从一个 dictionary 中删除独立的元素。
clear 从一个 dictionary 中清除所有元素。注意空的大括号集合表示一个没有元素的 dictionary。