字典

字典

字典的创建

>>>d={key1:value,key2:value2}

键必须是唯一的,但值不必。

dict函数,通过其他映射(如其他字典)或键/值序列对建立字典

dict可以将序列转换成字典。

例:

>>> student=[('name','小萌'),('number','1001')]

>>> detail=dict(student)

>>> print('学生详细信息:',detail)

学生详细信息: {'name': '小萌', 'number': '1001'}

>>> print('学生姓名:',detail['name'])

学生姓名: 小萌

>>> print('学生姓名:',detail['number'])

学生姓名: 1001

 

dict函数可以通过关键字参数创建字典,例如:

>>> detail=dict(name='小智',number='1002')

>>> print('学生详细信息:',detail)

学生详细信息: {'name': '小智', 'number': '1002'}

 

字典的基本操作

  1. 修改字典:修改,添加
  2. 删除字典元素:del命令,显式删除。
  3. 字典键的特性

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

键必须不可变,可以用数字、字符串或元组充当,不能用列表。

  1. len函数:len(dict)函数用于计算字典元素的个数,即键的个数。
    1. type函数:type(variable)函数返回输入的变量类型。

 

字典的格式化字符串:字典的格式化方式是在每个转换说明符中的%字符后加上用圆括号括起来的键,再跟上其他说明元素。例如:

>>> student={'小萌':'1001','小智':'1002','小强':'1005','小张':'1006'}

>>> print('字典的类型为:',type(student))

字典的类型为: <class 'dict'>

 

字典与列表的区别

dict的特点是:

  1. 查找和插入的速度极快,不会随着key的增加而变慢。
  2. 需要占用大量内存,内存浪费多。

 

list的特点是:

  1. 查找和插入时间随着元素的增加而增加。
  2. 占用空间小,浪费内存很少。

 

所以,dict是使用空间换取时间。

dict可以用在很多需要高速查找的地方,在python代码中几乎无处不在,正确使用dict非常重要,需要牢记dict的见必须是不可变对象。

 

字典方法

  1. clear():dict.clear(),用于删除字典内的所有项。
  2. copy():dict.copy(),用于返回结果为一个字典的浅复制(shallow copy),因为值本身是相同的,而不是副本。浅复制替换副本的值时原始字典不受影响。如果修改某个值,原始字典就会改变,因为同样的值也在原字典中。以这种方式进行复制就是浅复制,而使用深复制(deep copy)可以避免这个问题。
  3. fromkeys():dict.fromekeys(seq[,value]),dict代表字典,seq代表字典键值列表,value代表可选参数,设置键序列(seq)的值.该方法可以返回列表.formkeys方法使用给定的键值建立新字典,每个键默认对应的值为None.
  4. get:dict(key,default=None),返回指定键的值,如果值不在字典中,就返回默认值,默认值为None。
  5. key in dict:key in dict,用于判断键是否存在于字典中,如果键在字典dict中就返回true,否则就返回false。语法中dict代表指定字典,key代表要在字典中查找的键。如果键在字典里就返回true,否则就返回false。
  6. item():dict.items(),用于以列表返回可遍历的(键,值)元组数组。此语法中的dict代表指定字典,该方法不需要参数。返回结果为可遍历的(键/值)元组数组。

>>> student={'小萌':'1001','小智':'1002'}

>>> print('调用items方法的结果:%s'%student.items())

调用items方法的结果:dict_items([('小萌', '1001'), ('小智', '1002')])

7.keys():dict.keys(),dict代表指定字典,该方法不需要参数,以列表返回一个字典的所有键。

>>> student={'小萌':'1001','小智':'1002'}

>>> print(student.keys())

dict_keys(['小萌', '小智'])

8.setdefault():dict.setdefault(key,default=None),和get()方法类似,用于获得与给定键相关联的值。如果键不存在于字典中,就会添加键并将值设为默认值。语法中dict代表指定字典,key代表查找的键值,default代表键不存在时设置的默认键值。该方法没有任何返回值。当键不存在时,setdefault方法返回默认值并更新字典;如果键存在,就返回与其对应的值,不改变字典。和get一样,默认值可以选择,如果不设定就使用None,如果设定就使用设定的值。

9.update():dict.update(dict2),用于把字典dict2的键/值对更新到dict里。此语法中dict代表指定字典,dict2代表添加到指定字典dict里的字典。该方法没有返回值。

10.values():dict.values(),以列表方式返回字典中所有值。与返回键的链表不同,返回的列表中可以包含重复的元素。该方法不需要参数,返回结果为字典中的所有值。

 

posted @ 2018-01-22 21:30  板岩  阅读(108)  评论(0编辑  收藏  举报