字典
- 又称为(# hash,映射,关联数组)
“字” —> 先找首字母,查到这个字的解释所在的页数;
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
思维导图:
字典的定义:
d = {}
d = {“key1”:”value1”}
d = {“key1”:”value1”,”key2”:”value3”}
d = {
"172.25.254.1":
{
"user":"root",
"password":"westos",
"command":"hostname"
},
"172.25.254.2":
{
"user":"westos",
"password":"westos1",
"command":"hostname"
}
} # 支持异构,嵌套
user=[“user1”,”user2”]
passwd=[“123”,”123”]
d=dict(zip(user,passwd))
“”.fromkeys([“a”,”b”],”1000”)
字典的特性
- 字典是可变数据类型;可使用len(d)内置函数,计算字典的长度;
- 字典是无序的,与序列(str,list,tuple)不同的是,不支持索引,切片,连接与重复。只能通过key值获取对应的value值;
- 字典支持异构,支持嵌套;
字典的增加
d.update()##添加,更新
d.setdefault(key[,value])#如果key存在,不更改;如果key不存在,添加key-value到字典中;
如果key值有,并不存在d字典中,默认value值None;
字典的删除
d.pop(key) # 根据某个key值删除字典中的key-value值;
d.popitem() # 随机删除key-value值
d.clear() # 清空字典的所有内容,字典还存在
del(d[“key”]) # 删除指定的key值的key-value
del(d) # 删除字典d,d直接不存在
字典的修改
d[“key2”]=”value3”
d.update({“key”:”value”})##修改key值对应的value
字典信息的查看
- d.get(“key”) # 如果key存在,返回value值;如果不存在,返回None;
- d[“key”] # 如果key存在,返回value值;如果不存在,直接报错;
- d.has_keys(“key”) # 如果key存在,返回True;如果不存在,返回False;
- d.items()
- d.keys()
- d.values()
注意:如何遍历字典的所有key-value值:
for key,value in d.items():
print key, value
- d.iterkeys()
i=d.iterkeys()
print i.next()
print i.next()
print i.next()
print i.next()
- d.itervalues()
- d.iteritems()
字典的复制
d.copy()
In [105]: d1 = d.copy()
In [106]: id(d)
Out[106]: 20314528
In [107]: id(d1)
Out[107]: 20338192
In [108]: d2 = d
In [109]: id(d2)
Out[109]: 20314528