字典是由多个键值对组成,键可以是数字,字符串,元组(即任何不可变类型),但字典中的键是唯一的,值也可以是任意数据结构,值不唯一
键和值之间用冒号:隔开,键值对与键值对之间用逗号,隔开 整个字典用大括号括起来{}
创建方式:
有两种创建方式,1用字典的定义方式,键值对表示,2用dict函数
>>> stuno={'cc':'011','zm':'016','wyj':'014'}#字典的定义方式
>>> stuno
{'wyj': '014', 'cc': '011', 'zm': '016'}
>>> stu_no=[('cc','011'),('zm','016')]
>>> stuno_d=dict(stu_no) #使用dict函数将其转换成字典
>>> stuno_d
{'cc': '011', 'zm': '016'}
>>> stuno_d['zm']
'016'
基本字典操作:
>>> len(stuno_d)#查看字典长度 键值对的个数
2
>>> stuno_d['zm'] #查看键‘zm’的值是多少
'016'
>>> stuno_d['cc']='047'#给键赋值
>>> del stuno_d['zm']#删除指定的键值对
>>> 'zm' in stuno_d #判断是否存在
False
>>> stuno_d
{'cc': '047'}
>>> stuno_d['zm']='038' #即使键不存在 也可以添加一个键出来 比列表高效
>>> stuno_d
{'cc': '047', 'zm': '038'}
字典方法:
1 clear
>>> stuno_d
{'cc': '047', 'zm': '038'}
>>> d=stuno_d
>>> d
{'cc': '047', 'zm': '038'}
>>> d.clear()
>>> d
{}
>>> stuno_d
{}
#赋值操作 其实 对应的是同一个字典 clear 清除一个之后 两个字典变量都显示 为空
2 copy
>>> stuno={'cc':'011','zm':'016','wyj':'014'}
>>> stuno
{'wyj': '014', 'cc': '011', 'zm': '016'}
>>> d=stuno.copy()
>>> d
{'wyj': '014', 'cc': '011', 'zm': '016'}
>>> d.clear()
>>> d
{}
>>> stuno
{'wyj': '014', 'cc': '011', 'zm': '016'}
#而 copy方式赋值 会产生一个新的字典 再使用clear 只会清空当前字典 原始字典不受影响
3 fromkeys
用给定的键建立新的字典
>>> stuno
{'wyj': '014', 'cc': '011', 'zm': '016'}
>>> dic=stuno.fromkeys(['cc','tcm'])
>>> dic
{'tcm': None, 'cc': None}
4 get
返回字典项的方法
>>> stuno
{'wyj': '014', 'cc': '011', 'zm': '016'}
>>> stuno.get('wyj')
'014'
>>> stuno.get('zzzz')
>>> print(stuno.get('aaga'))
None
可以get(一个不存在的值)
5 has_key
判断是否有某个键 但是Python3 中没有这个函数
6 items
将所有字典中的键值对 以 列表 的方式返回[(键值对),(),()]
>>> stuno.items()
dict_items([('wyj', '014'), ('cc', '011'), ('zm', '016')])
Python3 中没有 iteritems
7 keys
将字典中的键以列表的形式返回
>>> stuno.keys()
dict_keys(['wyj', 'cc', 'zm'])
Python3 中没有 iterkeys
8 pop
移除一个指定元素
>>> stuno.pop('wyj')
'014'
>>> stuno
{'cc': '011', 'zm': '016'}
>>> stuno.popitem() #随机移除一个元素
('cc', '011')
9 update
用一个字典更新另一个字典
10 values
以列表形式返回字典中的值