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'>

 

今天的你,是否充满活力?

 

posted @ 2018-08-23 15:16  醉城、  阅读(250)  评论(0编辑  收藏  举报