python之字典一
字典的定义:
前面我们说过列表,它适合于将值组织到一个结构中并且通过编号对其进行引用。字典则是通过名字来引用值的数据结构,并且把这种数据结构称为映射,字典中的值没有特殊的顺序,都存储在一个特定的键(key)下,键可以是数字、字符串甚至元组。字典也是python中唯一内建的映射类型。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
可以用dict函数通过关键字的参数来创建字典:
>>> d = dict (name='wzw',age= 22) >>> d {'name': 'wzw', 'age': 22}
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
>>> dict = {'a': 1, 'b': 2, 'b': '3'} >>> dict {'a': 1, 'b': '3'}
访问字典中的值:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print( "dict['Name']: ", dict['Name']) print( "dict['Age']: ", dict['Age']) 运行结果: [python@master tmp]$ python3 a.py dict['Name']: Zara dict['Age']: 7
修改字典中的值:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print( "dict['Age']: ", dict['Age'])
修改健值 dict['Age']=10 print( "dict['Age']: ", dict['Age']) 新增健值 dict['school']='henan school' print(dict) 运行结果: [python@master tmp]$ python3 a.py dict['Age']: 7 dict['Age']: 10 {'Name': 'Zara', 'Age': 10, 'Class': 'First', 'school': 'henan school'}
删除字典元素:
能删单一的元素也能清空字典,清空只需一项操作。显示删除一个字典用del命令
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} del dict['Name']; # 删除键是'Name'的条目 print(dict) dict.clear(); # 清空词典所有条目 print(dict)
del dict ; # 删除词典
运行结果:
[python@master tmp]$ python3 b.py
{'Age': 7, 'Class': 'First'}
{}
字典的特性:
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行
字典和列表的区别:
a. 字典的键可以是任意的不可变类型
b. 成员资格查找时查找的时键而不是值
c. 即使键起初不存在也可以为它直接赋值,字典会自动添加新的项
d. 字典是不可修改的
字典的内置函数
cmp(dict1, dict2) #比较两个字典元素。 --这个是python2.x中的比较 在python3中 已经没有cmp函数,被operator模块代替 len(dict) #计算字典元素个数,即键的总数。 str(dict) #输出字典可打印的字符串表示。 type(variable) #返回输入的变量类型,如果变量是字典就返回字典类型。
内置函数Operator()
import operator #首先要导入运算符模块 operator.gt(1,2) #意思是greater than(大于) operator.ge(1,2) #意思是greater and equal(大于等于) operator.eq(1,2) #意思是equal(等于) operator.le(1,2) #意思是less and equal(小于等于) operator.lt(1,2) #意思是less than(小于)
例子:
import operator
dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict2 = {'Name': 'Zara', 'Age': 8, 'Class': 'First'}
result=operator.eq(dict1,dict2)
print (result)
结果:
[python@master tmp]$ python3 b.py
False
函数的返回值是布尔值
内置函数len()
dict1 = {'Name': 'Zara', 'Age': 8, 'Class': 'First'} lenth=len(dict1) print (lenth) 结果: [python@master tmp]$ python3 b.py 3
内置函数str()
dict1 = {'Name': 'Zara', 'Age': 8, 'Class': 'First'} lenth=str(dict1) print (lenth) 结果: [python@master tmp]$ python3 b.py {'Name': 'Zara', 'Age': 8, 'Class': 'First'}
内置函数type()
dict1 = {'Name': 'Zara', 'Age': 8, 'Class': 'First'} lenth=type(dict1) print (lenth) 结果: [python@master tmp]$ python3 b.py <class 'dict'>
今天的你,是否充满活力?
天下难事,必作于易;天下大事,必作于细