Python 字典(Dictionary) 小菜鸟学Python

Python字典是一系列的  键___值对,是另一种可变容器模型,且可以存储任意类型对象。如字符串,数字、元组等其他容器模型。

每个键都与对应值相关联,与键相关联的值可以是数字、元组、字符串、列表乃至字典。

创建字典

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

dict = {'name':'jam','age':27,556:['1','2','3']}

注意:
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中{}中。
键必须独一无二,但值则不必。
值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

 访问字典

要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:

 1 dict = {'name':'jam','age':27,556:['1','2','3']}
 2 print(dict['name'])
 3 print(dict['age'])
 4 print(dict[556]) 
 5 
 6 #以下为输出结果:
 7 >>>jam
 8 >>>27
 9 >>>['1','2','3']
10 
11 #如果输入错误的键,结果如下:
12 print(dict['number'])
13 >>>KeyError:'number'

 三添加键__值对

 1 #直接对字典中不存在的key进行赋值来添加。
 2 dic = {} #创建一个空的列表
 3 dic['name']='lilei'
 4 dic['age']=18  
 5 print(dic)
 6 >>>{'name':'lilei','age':18}  #输入结果
 7 
 8 #如果key或value都是变量也可以用这种方法
 9 key='age'
10 value=30
11 dic[key]=value
12 print(dic)
13 >>>{'age': 30}

 还可以用字典的setdefault方法:

1 dic={}
2 dic.setdefault('sex','male')
3 print(dic)
4 >>>{'sex':'male'}
5 key='007'
6 value='James Bond'
7 dic.setdefault(key,value)
8 print(dic)
9 >>>{'sex':'male','007:''James Bond'}

修改字典

 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

1 dic={'age': 18, '007': 'bangde', 'name': 'lilei', 'sex': 'male'}
2 print(dic)
3 dic['age']=22
4 dic['007']='linglingfa'
5 print(dic)
6 #输出结果
7 >>>{'age': 18, '007': 'bangde', 'name': 'lilei', 'sex': 'male'}
8 >>>{'age': 22, '007': 'linglingfa', 'name': 'lilei', 'sex': 'male'}

 五删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:

 1 dic={'age': 18, '007': 'bangde', 'name': 'lilei', 'sex': 'male'}
 2 del dic['name']   #删除字典dic中‘name’的键与值
 3 print(dic)
 4 dic.clear()       #删除字典dic中所有键值,成为空字典
 5 print(dic)
 6 del dic           #删除字典dic
 7 print(dic)
 8 #输出打印结果
 9 >>>{'age': 18, '007': 'bangde', 'sex': 'male'}
10 >>>{}
11 >>>NameError: name 'dic' is not defined

字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

1 dic={'age': 18, '007': 'bangde', 'name': 'lilei', 'sex': 'male','name':'liuifang'}
2 print(dic['name'])
3 
4 >>>liufang

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

1 dic={[age]: 18, '007': 'bangde', 'name': 'lilei', 'sex': 'male'}
2 print(dic)
3 
4 >>>NameError: name 'age' is not defined

字典内置函数&方法:

     序号                  函数及描述        Python字典包含了以下内置函数:

  1、     cmp(dict1, dict2) #比较两个字典元素。 注意:python3中已经删除了cmp()该函数。    

  2、       len(dict) #计算字典元素个数,即键的总数。
 
  3、       len(dict) #输出字典可打印的字符串表示
 
  4、     type(variable) #返回输入的变量类型,如果变量是字典就返回字典类型。
   
  序号      函数及描述        Python字典包含了以下内置方法:
 
  1、      dict.clear()   #删除字典内所有元素
  2、      dict.copy()   #返回一个字典的浅复制

  3、      dict.get(key, default=None)   #返回指定键的值,如果值不在字典中返回default值

  4、      dict.has_key(key)  #如果键在字典dict里返回true,否则返回false
  5、      dict.items()  #以列表返回可遍历的(键, 值) 元组数组
  6、      dict.keys()  #以列表返回一个字典所有的键

  7、      dict.setdefault(key, default=None)  #和get()类似, 但如果键不存在于字典中,

             将会添加键并将值设为default

  8、      dict.update(dict2)  #把字典dict2的键/值对更新到dict里
  9、      dict.values()  #以列表返回字典中的所有值

  10、     pop(key[,default])  #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 

            否则,返回default值。

     11、     popitem()   #随机返回并删除字典中的一对键和值。  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/ztmboke/p/8760183.html