字典
字典
字典的创建
>>>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'}
字典的基本操作
- 修改字典:修改,添加
- 删除字典元素:del命令,显式删除。
- 字典键的特性
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后面的值会被记住。
键必须不可变,可以用数字、字符串或元组充当,不能用列表。
- len函数:len(dict)函数用于计算字典元素的个数,即键的个数。
- type函数:type(variable)函数返回输入的变量类型。
字典的格式化字符串:字典的格式化方式是在每个转换说明符中的%字符后加上用圆括号括起来的键,再跟上其他说明元素。例如:
>>> student={'小萌':'1001','小智':'1002','小强':'1005','小张':'1006'}
>>> print('字典的类型为:',type(student))
字典的类型为: <class 'dict'>
字典与列表的区别
dict的特点是:
- 查找和插入的速度极快,不会随着key的增加而变慢。
- 需要占用大量内存,内存浪费多。
list的特点是:
- 查找和插入时间随着元素的增加而增加。
- 占用空间小,浪费内存很少。
所以,dict是使用空间换取时间。
dict可以用在很多需要高速查找的地方,在python代码中几乎无处不在,正确使用dict非常重要,需要牢记dict的见必须是不可变对象。
字典方法
- clear():dict.clear(),用于删除字典内的所有项。
- copy():dict.copy(),用于返回结果为一个字典的浅复制(shallow copy),因为值本身是相同的,而不是副本。浅复制替换副本的值时原始字典不受影响。如果修改某个值,原始字典就会改变,因为同样的值也在原字典中。以这种方式进行复制就是浅复制,而使用深复制(deep copy)可以避免这个问题。
- fromkeys():dict.fromekeys(seq[,value]),dict代表字典,seq代表字典键值列表,value代表可选参数,设置键序列(seq)的值.该方法可以返回列表.formkeys方法使用给定的键值建立新字典,每个键默认对应的值为None.
- get:dict(key,default=None),返回指定键的值,如果值不在字典中,就返回默认值,默认值为None。
- key in dict:key in dict,用于判断键是否存在于字典中,如果键在字典dict中就返回true,否则就返回false。语法中dict代表指定字典,key代表要在字典中查找的键。如果键在字典里就返回true,否则就返回false。
- 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(),以列表方式返回字典中所有值。与返回键的链表不同,返回的列表中可以包含重复的元素。该方法不需要参数,返回结果为字典中的所有值。