字典是无序的对象集合,使用键来存取索引,键必须是惟一的,值可以存取任何数据类型,但是键只能使用字符串、数字或元组,使用值来存取数据,通常用于存储描述一个物体的相关信息。 创建字典name = {'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} 注:字典由多个键及对应的值组成,键和值使用冒号分割,字典中键的值必须唯一,而值不需要,另外,字典中的键必须是不可变的,如:字符串,元组和数字。、 访问字典age={'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} 修改字典age={'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} 删除字典删除字典可以删除对应的键值对,也可以删除整个字典。 age = {'zhangsan': 12, 'lisi': 15, 'boxiaoyuan': 22} 循环遍历xiaoming = {"name": "xiaoming", "age": 18} 在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多。 字典常用的方法# -*- coding:utf-8 -*- import copy age = {'zhangsan': 12, 'lisi': 15, 'boxiaoyuan': 22} age.pop('boxiaoyuan') # 移出列表中的元素 print(age) # {'zhangsan': 12, 'lisi': 15} print(age.get('lisi')) # 15,获取列表中的元素 print(age.items()) # dict_items([('zhangsan', 12), ('lisi', 15)]),返回可遍历的元组数组 print(age.keys()) # dict_keys(['zhangsan', 'lisi']),返回字典的所有键 print(age.setdefault('wangwu')) # None,根据指定键获取值,如果没有则在字典中新增加键并设置默认值None,如果存在值,则显示出来 print(age.setdefault('zhangsan')) # 12 print(age) # {'zhangsan': 12, 'wangwu': None, 'lisi': 15} age2 = {'bokeyuan': 44} age.update(age2) # 用age2的值更新age的值 print(age) # {'zhangsan': 12, 'wangwu': None, 'lisi': 15, 'bokeyuan': 44} print(age.values()) # dict_values([12, None, 15, 44]),返回字典中所有值 D1 = {'name': 'zhangsan', 'method': ['run', 'eat', 'drink']} # 原始数据 D2 = D1 # 直接引用,D1和D2指向同一对象 D3 = D1.copy() # 浅拷贝,复制时只会复制父对象,不会复制对象内部的子对象 D4 = copy.deepcopy(D1) # 深拷贝,复制父对象和子对象 D1['name'] = 'lisi' D1['method'].remove('eat') print('原始数据:',{'name': 'zhangsan', 'method': ['run', 'eat', 'drink']}) print('D1修改后数据:', D1) # {'name': 'lisi', 'method': ['run', 'drink']} print('D2数据:', D2) # {'name': 'lisi', 'method': ['run', 'drink']} print('浅拷贝数据:', D3) # {'name': 'zhangsan', 'method': ['run', 'drink']} print('深拷贝数据:', D4) # {'name': 'zhangsan', 'method': ['run', 'eat', 'drink']} # 可见,复制后对于原字典内部的子对象(方括号括起的元素)进行操作,浅拷贝字典会受到影响,深拷贝不会受到影响。 lists = [1, 2, 3, 4] dicts = dict.fromkeys(lists) # 创建一个新的字典,seq为字典的键,value为键对应的初始值,默认为None print(dicts) # {1: None, 2: None, 3: None, 4: None} dicts = dict.fromkeys(lists, 10) print(dicts) # {1: 10, 2: 10, 3: 10, 4: 10} print("zhangsan在字典中", 'zhangsan' in age) # True,key in dict用来判断键是否在字典中,在的话,返回True,不在,返回False age.clear() # 清除字典中所有的值 print(age) # {} 字典的其他说明a)字典的格式化输出 age = {'zhangsan': 12,'lisi': 15,'boxiaoyuan': 22} b)字典和列表的区别 字典的特点:查找和插入的速度非常快,但是需要占用大量内存,内存浪费较多。 列表的特点:查找和插入的速度随着元素的增加而减慢,占用空间小。 来源:http://www./content-1-192551.html |
|