字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号{}编写,拥有键和值。
查找数据:
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: a
Out[2]: {'hh': 18, 'qqa': 21, 'xia': 3}
In [3]: #字典没有顺序,查找用key值
...: a['qqa']
Out[3]: 21
In [4]: #查找'xia'
...: 'xia' in a
Out[4]: True
In [5]: #不能查找value值
...: 18 in a
Out[5]: False
更改数据:
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: a['qqa']=38
In [3]: a
Out[3]: {'hh': 18, 'qqa': 38, 'xia': 3}
删除数据与列表类似(pop),不同之处是字典没有顺序,pop函数里必须有数据,如pop('qqa')。
增加数据:
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: a['sex']='nv'
In [3]: a
Out[3]: {'hh': 18, 'qqa': 21, 'xia': 3, 'sex': 'nv'}
字典进阶用法
1. 分别查找所有key值和value值
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: #所有key值
...: a.keys()
Out[2]: dict_keys(['hh', 'qqa', 'xia'])
In [3]: #所有value
...: a.values()
Out[3]: dict_values([18, 21, 3])
2. 同时查找所有key值和value值
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: a.items()
Out[2]: dict_items([('hh', 18), ('qqa', 21), ('xia', 3)])
3. get D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: #查找到'qqa',返回对应值
...: a.get('qqa',44)
Out[2]: 21
In [3]: #查找不到'qq',返回指定值
...: a.get('qq',44)
Out[3]: 44
In [4]: a
Out[4]: {'hh': 18, 'qqa': 21, 'xia': 3}
4. setdefault D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D(与get类似,不同之处是查找不到就赋值)
In [1]: a={'hh':18,'qqa':21,'xia':3}
In [2]: a.setdefault('qqa',44)
Out[2]: 21
In [3]: a.setdefault('qq',44)
Out[3]: 44
In [4]: a
Out[4]: {'hh': 18, 'qqa': 21, 'xia': 3, 'qq': 44}
5. 字典也可以集合化
In [1]: a={'hh': 18, 'qqa': 21, 'xia': 3, 'qq': 44}
In [2]: set(a)
Out[2]: {'hh', 'qq', 'qqa', 'xia'}