python 字典
1.字典创建
空字典
d = {}
赋值创建字典,key-value
d = {“key1”:”value1”,”key2”:”value2”}
通过工厂函数创建字典
userinfo = dict(user1=”123”, user2=”456”, user3 =”789”)
print userinfo
{‘user2’: ‘456’, ‘user3’: ‘789’, ‘user1’: ‘123’}
通过字典的 fromkeys 方法创建字典,所有元素有一个默认值;
如果没有指定默认值,默认为 None;
print {}.fromkeys(“hello”)
{‘h’: None, ‘e’: None, ‘l’: None, ‘o’: None}
给每个元素设置默认值为 “123”;
print {}.fromkeys([“user1”, “user2”, “user3”], “123”)
{‘user2’: ‘123’, ‘user3’: ‘123’, ‘user1’: ‘123’}
2.分析字典的特性(跟元组和列表比较)
字典不能索引和切片,因为字典是无序的数据类型;
字典不支持重复和连接;
字典支持成员操作符: 判断字典的key值是否在字典中存在; in, not in
3.字典的增加
services = {“ftp”:[20,21]}
通过字典名 [key]=value, 将 key-value 添加到字典中 ;
services[‘http’] = [80, 8080]
print services
{‘ftp’: [20, 21], ‘http’: [80, 8080]}
update 方法实现添加: key 存在,覆盖 value 值, 否则,添加
services = {“ftp”:[20,21]}
services1 = {‘http’:[80,8080]}
services.update(services1)
print services
更建议使用
services.update(http=[80,8080], ftp=22)
print services
{‘ftp’: 22, ‘http’: [80, 8080]}
setdefault 实现添加: key 存在,不覆盖 value 值, 否则,添加
services = {“ftp”:[20,21]}
services1 = {‘http’:[80,8080]}
services.setdefault(“ftp”, 22)
print services
{‘ftp’: [20, 21]}
4.字典的修改
字典名[key]=value
d.update({‘a’:2, ‘b’:3})
d.update(a=2, b=3)
5.字典的查找
查看 key 值
services.keys()
services.viewkeys() # 给 key 起名字
services.iterkeys()
查看 value 值
services.values()
查看 key-value 键值对
services.items()
查看 key 是否存在 ;
services.has_key(‘ftpp’)
查看指定 key 对应的 value 值;如果 key 不存在,不报错; 如果存在,返回 value 值;
services[‘ftp’] 如果 key 不存在,直接报错;
services.get(‘ftpp’)
6.字典的删除
d.pop(key) #删除指定 key 的字典元素;
d.popitem() #随机删除字典的 key-value 元素
del d[key] #删除指定 key 的字典元素;
d.clear() 清空字典元素
7.循环遍历
for i,j in services.items():
print i,j
ftp 22
http [80, 8080]
默认情况下遍历字典的 key 值;
for i in services:
print i