字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象。
字典有两个重要的特征:
字典是无序的,字典项没有特定的顺序,只能通过键来获取值;字典是可变的,原处修改键的值;字典是作为散列表来实现的,可增长,搜索非常快速;和列表一样,字典存储的是对象的引用,不是拷贝。创建字典
创建空的字典:
>>> d={}创建包含两个项目的字典:
>>> d={'name':'vic','age':28}创建包含嵌套类型的字典:
>>> d={'student':{'name':'vic','age':28}}通过dict函数来创建字典:
>>> d=dict(name='vic',age=28)>>> d{'name': 'vic', 'age': 28}字典解析
使用字典解析,可以使用迭代器来生成字典:
>>> d={x:x**2 for x in range(0,5)}>>> d{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}引用字典的值
通过键来引用字典的值
>>> d['name']'vic'>>> d['age']28或者使用dict.get(key, default)来获取键对应的值,其中default参数的作用是:当不存在键时,返回default作为该键的值:
>>> d.get('name')'vic'>>> d.get('nam','jim')'jim'字典操作
字典的基本操作有:
len(dict):字典项的数量,或者字典键的数量dict.keys():所有字典键的集合dict.values():所有字典值得集合dict.items():字典项(键/值对)的集合list(dict.keys()):把所有字典键转换为列表list(dict.values()):把所有字典键的值转换为列表d[key],d.get(key):根据字典的键获取值key in dict:检查该key是否是字典的键1,添加/修改字典项
如果字典中不存在Key,那么添加该Key/Value对;如果存在该Key,那么修改该Key的值。
>>> d=dict(name='vic',age=28)>>> d['sex']='male'{'name': 'vic', 'age': 28, 'sex': 'male'}>>>>>> d['sex']='man'{'name': 'vic', 'age': 28, 'sex': 'man'}2,删除字典项
dict.pop(key) 用于删除键为key的字典项
>>> d.pop('sex')'man'>>> d{'name': 'vic', 'age': 28}或者使用 del dict[key]来删除键为key的字典项:
>>> del d['sex']3,合并字典
dict.update(dict2),把字典dict2合并到dict中
>>> d.update({'tel':'120'}){'name': 'vic', 'age': 28, 'tel': '120'}4,复制字典
dict.copy()获得字典的一个深拷贝(deep copy)对象,深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存。
dict2=dict:获得字典的一个浅拷贝(shallow copy)对象,浅拷贝只是增加了一个指针指向已经存在的内存。
例如,深拷贝对象和原对象,指向不同的内存空间,修改任意一个字典,不会影响另外一个字典:
>>> d=dict(name='vic',age=28)>>> dc=d.copy() # deep copy>>> dc['tel']=120>>> d{'name': 'vic', 'age': 28}>>> dc{'name': 'vic', 'age': 28, 'tel': 120}而浅拷贝对象和原对象指向相同的内存空间,修改任意一个字典,另一个字典也会修改:
>>> d=dict(name='vic',age=28)>>> sc=d # shallow copy>>> sc['tel']=110>>> sc{'name': 'vic', 'age': 28, 'tel': 110}>>> d{'name': 'vic', 'age': 28, 'tel': 110}JSON结构
Python中的json对象实际是一个字典结构,用于存储和交换信息,导入json模块:
import json1,把字符串转换为json
json的load()方法用于把josn格式的字符串转换为json对象,这实际上是一个字典结构:
json_string= '{ "name":"John", "age":30, "city":"New York"}'# parse string to jsonjson_obj = json.loads(json_string)2,把字典转换为json字符串
json的dumps()函数用于把字典结构转换为json格式的字符串。
x = { "name": "John", "age": 30, "city": "New York"}# convert dict into JSON string:json_string = json.dumps(x)