目录
一、定义
二、初始化
三、字典元素访问
四、字典修改
五、字典删除
六、字典遍历
1. 遍历key
2. 遍历value
3. 字典遍历
key-value键值对的数据的集合
可变的、无序的、key不重复
1. d = dict() 或者 d = {}
2. dict(**kwargs)
使用name=value对初始化一个字典
示例:d = dict(a=1,b=2)
3. dict(iterable, **kwarg)
使用可迭代对象和name=value对构造字典,不过可迭代对象的元素必须是 一个二元结构(两个元素)
示例:d = dict(((1,'a'),(2,'b'))) 或者 d = dict(([1,'a'],[2,'b']))
4. dict(mapping, **kwarg)
使用一个字典构建另一个字典
示例:c = dict(d,t=3)
value值可以是数字、字符串、None、字典等
示例:d = {'a':10, 'b':20, 'c':None, 'd':[1,2,3]}
类方法dict.fromkeys(iterable, value) 批量定义字典key,value值
示例:
d = dict.fromkeys(range(5))
d = dict.fromkeys(range(5),0)
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
示例:
c.setdefault('e',12)
c.setdefault('f')
1. d[key] = value 将key对应的值修改为value ,key不存在添加新的kv对
2. update([other]) -> None 使用另一个字典的kv对更新本字典
示例:
d.update(red=1)
d.update((('red',2),))
d.update({'red':3})
d.update(c)
1. pop(key[, default] key存在,移除它,并返回它的value,key不存在,返回给定的default , default未设置,key不存在则抛出KeyError异常
2. popitem() 移除并返回一个任意的键值对,字典为空时,抛出KeyError异常
3. clear() 清空字典
4. del语句(用的少)
del a['c'] 看着像删除了一个对象,本质上减少了一个对象的引用,del 实际上删除的是名称(标识符),而不是对象,内存地址还在(引用计数删掉了)
for ... in dict
for k in d:
print(k)
for k in d.keys():
print(k)
for k in d:
print(d[k])
for k in d:
print(d.get(k))
for v in d.values():
print(v)
for ... in dict
遍历item,即kv对
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)
for _ ,v in d.items():
print(v)
遍历总结
keys、values、items方法返回一个类似一个生成器的可迭代对象,不会把函数的返回结果复制到内存中
实际使用去重的场景中,主要用key,或者用set
只用values的话可以直接用列表
字典的key总结
set的元素可以就是看做key,set可以看做dict的简化版
hashable 可哈希才可以作为key,可以使用hash()测试
示例:
d = {1 : 0, 2.0 : 3, "abc" : None, ('hello', 'world', 'python') : "string", b'abc' : '135'}