(python)字典

字典(dict)是Python内建数据类型。在其它的某些语言中,字典可能被称为联合内存或联合数组。列表是以连续的整数为索引,而字典是以关键字为索引。关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串或数字,它也可以做为字典的关键字,但是它如果直接或间接的包含了可变对象,就不能当做关键字。不能用列表做关键字,因为列表可以用索引、切割或者append()和extend()等方法改变列表的数据。

字典的每个键值对(key:value)用冒号:分割,每个对之间用逗号(,)分割,整个字典包括在大括号{}中 这也是字典输出的方式。

字典的常用操作和内置的方法


1、按key存取值:可存可取

>>> dic={'name':'monicx'}
>>> dic['name']
'monicx'
>>> dic['age']=23
>>> dic
{'name': 'monicx', 'age': 23}
>>>

注意:要加入一个键值对时,当字典中没有这个键的时候,就会将这个键值加进入字典当中,如果已经存在,就会覆盖这个键的值。

2、长度len()

计算字典中键值对的个数。

3、成员运算in和not in

它是判断字中是否有这个键。

>>> dic={'name':'monicx','age':23}
>>> 'name'in dic
True
>>> 'name'not in dic
False

4、删除

用del 或者pop()来删除,唯一的区别就是pop()删除时有返回被删除的键值。

>>> dic={'name':'monicx','age':23}
>>> del dic['name']
>>> dic
{'age': 23}
>>> res=dic.pop('age')
>>> res
23
>>> dic
{}

popitem()删除最后一个键值对,并返回这个键值对。

>>> dic={'name':'monicx','age':23}
>>> dic.popitem()
('age', 23)
>>> dic
{'name': 'monicx'}

注意:pop()中有的第二个参数是,当移除这个键它不在这个字典里面的时候,会反回这个参数,这个参数最好用None,也可以自己定义。

5、键keys(),值values(),键值对items()

>>> dic={'name':'monicx','age':23}
>>> dic.keys()
dict_keys(['name', 'age'])
>>> dic.values()
dict_values(['monicx', 23])
>>> dic.items()
dict_items([('name', 'monicx'), ('age', 23)])

keys()#就是将键分别取出来放在一个列表里。

values() #就是将值分别取出来放在一个列表里。

items()#就是将字典里的每键值对以元组的形式存放到一个列表里。

6、setdefault()

如果这个键已经有存在就不覆盖,返回原key对应的值,不存在就添加进去,返回新key对应的值。

>>> dic={'name':'monicx','age':23}
>>> dic.setdefault('sex','male')
'male'
>>> dic
{'name': 'monicx', 'age': 23, 'sex': 'male'}

7、update()

新字典中有,而老字典中没有则添加,如果都有,则覆盖

>>> dic={'name':'monicx','age':23}
>>> dic.update({'name':'lili','sex':'male'})
>>> dic
{'name': 'lili', 'age': 23, 'sex': 'male'}

8、fromkeys()

得到一个字典:

good_info={
    'name':None,
    'price':None,
    'count':None
}
>>> good_info=({}.fromkeys(['name','price','count'],None))
>>> good_info
{'name': None, 'price': None, 'count': None}
>>>

9、get()

>>> dic={'name':'monicx','age':23}
>>> dic.get('name')
'monicx'

10、clear()

清除字典

>>> dic={'name':'monicx','age':23}
>>> dic.clear()
>>> dic
{}




猜你喜欢

转载自blog.csdn.net/miaoqinian/article/details/80575846
今日推荐