>>> x={"吕布","关羽"}
>>> type(x)
<class 'set'>
>>> y={"吕布":"口口布","关羽":"关习习"} --- 前面的是字典的键 后面的是字典的值
>>> type(y)
<class 'dict'> --------字典
>>> y["吕布"]
'口口布'
>>> y["关羽"]
'关习习'
>>> y["刘备"]="刘BEI"
>>> y
{'吕布': '口口布', '关羽': '关习习', '刘备': '刘BEI'}
------------通过指定一个不存在于字典中的键 可以创建一个新的键值
>>> a={"吕布":"口口布","关羽":"关习习"}
>>> b=dict(吕布="口口布",关羽="关习习")
>>> a==b
True
fromkeys (iterable[,values]) 方法,可以使用interable参数指定的可迭代对象创建一个新的字典,并将所有的值初始化为values参数指定的值
>>> d=dict.fromkeys("Fish",250)
>>> d
{'F': 250, 'i': 250, 's': 250, 'h': 250}
>>> d["F"]=70
>>> d
{'F': 70, 'i': 250, 's': 250, 'h': 250}
>>> d["C"]=67 -----没有的话,会加到后面
>>> d
{'F': 70, 'i': 250, 's': 250, 'h': 250, 'C': 67}
序列和字典的重大区别,在序列中 元素是可以重复的 而字典中的项 也就是键值对 一个键对应一个值 并不会存在重复的键
删
>>> d.pop('s')
250
>>> d
{'F': 70, 'i': 250, 'h': 250, 'C': 67} ------这里S就被删除了
>>> d=dict.fromkeys("FishC",250)
>>> d
{'F': 250, 'i': 250, 's': 250, 'h': 250, 'C': 250}
>>> d.clear()
>>> d
{}
update 可以支持同时传入多个键值对 也可以直接给它传入另外一个字典
改:
>>> d=dict.fromkeys("FishC")
>>> d
{'F': None, 'i': None, 's': None, 'h': None, 'C': None}
>>> d["s"]=115
>>> d
{'F': None, 'i': None, 's': 115, 'h': None, 'C': None}
>>> d.update({"i":105,"h":103})
>>> d
{'F': None, 'i': 105, 's': 115, 'h': 103, 'C': None}
>>> d.update(F="70",C="67")
>>> d
{'F': '70', 'i': 105, 's': 115, 'h': 103, 'C': '67'}
查
>>> d["C"]
'67'
>>> d["c"]
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
d["c"]
KeyError: 'c' 报错
>>> d.get("c","这里没有")
'这里没有'
>>> d.setdefault("C","code")
'67'
>>> d.setdefault("c","code")
'code'
>>> d
{'F': '70', 'i': 105, 's': 115, 'h': 103, 'C': '67', 'c': 'code'}
视图对象 即字典的动态视图 当字典内容发生改变 视图对象的内容也会随之发生改变
>>> keys=d.keys()
>>> values=d.values()
>>> items=d.items()
>>> items
dict_items([('F', '70'), ('i', 105), ('s', 115), ('h', 103), ('C', '67'), ('c', 'code')])
>>> values
dict_values(['70', 105, 115, 103, '67', 'code'])
>>> keys
dict_keys(['F', 'i', 's', 'h', 'C', 'c'])
>>> d.pop("c") -----------视图会随之发生改变
'code'
>>> items
dict_items([('F', '70'), ('i', 105), ('s', 115), ('h', 103), ('C', '67')])
>>> len(d)
5
>>> "C"in d
True
>>> "c"in d
False
>>> list(d.values())
['70', 105, 115, 103, '67']
>>> e=iter(d)
>>> next(e)
'F'
>>> next(e)
'i'
>>> next(e)
's'
>>> next(e)
'h'
>>> next(e)
'C'
>>> next(e)
Traceback (most recent call last):
File "<pyshell#61>", line 1, in <module>
next(e)
StopIteration
嵌套