Python学习进程(10)字典

    本节介绍Python中的字典:是另一种可变容器模型,且可存储任意类型对象

    (1)字典简介:

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

    注意:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    (2)字典的操作:

    包括创建字典、访问字典元素、修改字典的值、删除字典指定元素,删除字典:

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
#1.创建字典:
>>> dic={'name':'MenAngel','age':19,'sex':''};
>>> print dic
{'age': 19, 'name': 'MenAngel', 'sex': 'xc4xd0'}
#2.修改字典中元素
>>> dic['name']='sunjimeng'
#3.访问字典中指定元素
>>> print dic
{'age': 19, 'name': 'sunjimeng', 'sex': 'xc4xd0'}
>>> dic['name']
'sunjimeng'
>>> dic
{'age': 19, 'name': 'sunjimeng', 'sex': 'xc4xd0'}
#4.删除字典中指定元素
>>> del dic['sex']
>>> dic
{'age': 19, 'name': 'sunjimeng'}
#5.删除字典中所有元素
>>> dic.clear()
>>> dic
{}
#6.删除字典
>>> del dic

    (3)字典键的特性:

    注意:字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

    1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住:

    2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行:

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> dic={'name':'MenAngel','age':19,'name':'sunjimeng'}
>>> dic
{'age': 19, 'name': 'sunjimeng'}
#键可以用数字,字符串,可以用元组
>>> dic[4]=346 >>> dic {'age': 19, 4: 346, 'name': 'sunjimeng'} >>> dic[('abc',20)]='sex' >>> dic {('abc', 20): 'sex', 'age': 19, 4: 346, 'name': 'sunjimeng'}
#但不能用列表
>>> dic[[20,]]=20 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'

    (4)字典内置函数或方法:

    1)字典内置函数:

#1.第一种字典初始化方式:
>>> dic1={}
>>> dic1['name']='MenAngel';
>>> dic1['age']=20;
>>> dic1['sex']='';
#2.第二种字典初始化方式
>>> dic2={'name':'MenAngel','age':20,'sex':'']
>>> dic1
{'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'}
>>> dic2
{'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'}
>>> cmp(dic1,dic2)
0
>>> len(dic1)
3
>>> str(dic1)
"{'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}"
>>> type(dic1)
<type 'dict'>

    2)Python字典的内置方法:

 

>>> dict1={'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'}
>>> dict2=dict1.copy()
>>> list1=dict1.keys()
>>> list2=dict1.values()
>>> dict1.has_key('name')
True
>>> dict1,dict2
({'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'})
>>> list1,list2
(['age', 'name', 'sex'], [20, 'MenAngel', 'xc4xd0'])
>>> dict1['name']='sunjimeng'
>>> dict1,dict2
({'age': 20, 'name': 'sunjimeng', 'sex': 'xc4xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'})
>>> dict1.update(dict2)
>>> dict1,dict2
({'name': 'MenAngel', 'age': 20, 'sex': 'xc4xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': 'xc4xd0'})
>>> dict.setdefault('abc','123')
20
>>> dict1.setdefault('abc','123')
'123'
>>> dict1.setdefault('abc','456')
'123'
>>> dict1.items()
[('abc', '123'), ('name', 'MenAngel'), ('age', 20), ('sex', 'xc4xd0')]
原文地址:https://www.cnblogs.com/MenAngel/p/5694725.html