Python字典的介绍和使用-创新互联
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。字典是另一种可变容器模型,且可存储任意类型对象。
在铁东等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作定制网站设计,公司网站建设,企业网站建设,高端网站设计,成都营销网站建设,成都外贸网站建设公司,铁东网站建设费用合理。一、什么是字典
字典是python里的一种数据类型,特点是元素的无序性,和键key的唯一性。字典的创建方法是{key:values},字典里的键key只能是不可变的数据类型(整型,字符串或者是元组),值values可以是任何数据类型。字典里的一组key:values叫做一个键值对item。
1、字典的实现原理
字典的实现原理和差字典是类似的。当我们在字典中查找某个字时,一种办法是从字典的第一页开始往后翻,
直到找到我们要查找的字为止。这种办法就是在列表中查找元素的方法,其缺点:字典中的字数越多查找的效率
越低。第二种方法是先在字典的索引表里(比如部首表)查找这个字对应的页码,然后直接到这个字对应的页,
其优点是:查找效率不会随着字典中字数的增加而降低,无论查找哪个字,查找速度非常快。
2、字典的特点
a) 字典中的所有元素都是一个key-value时,通过指定的key总能映射到唯一确定的value。字典中不可以存在重复的,
但是可以存在重复的value。
b) 字典中的元素是无序的。顺序不重要重要的是key和value的映射关系。
c) 字典中的key必须是不可变对象。存取字典中的key-value对时,系统会调用内置函数hash根据指定key计算出value
存储位置,也就是哈希值。对于指定的key,为了保证每次计算出的哈希值都是相同的,要求key必须是不可变对象。也就是说,
只有不可变对象才存在哈希值。
d) 字典可以根据需要动态地伸缩。系统会根据需要动态分配和回收内存,因此在使用前无须预先声明字典的容量。
e) 字典会浪费较大的内存,与列表相比是用空间换取查询时间。
二、为什么需要字典
例如:电话簿中存储了姓名和电话号码:
张三 111111111
李四 222222222
王五 333333333
赵六 444444444
# 姓名
names = ['张三','李四','王五','赵六']
# 电话号码
numbers = ['111111111','222222222','333333333','444444444']
print(numbers[names.index('张三')]) # 111111111 for i,n in zip(names,numbers): print(i,n) #或者使用zip进行并行遍历 张三 111111111 李四 222222222 王五 333333333 赵六 444444444最好是能把姓名和电话号码全部存储在一个和脚phonebook的数据结构中,就能直接获得其对应的电话号码。
phonebook = {'张三':'111111111','李四':'222222222','王五':'333333333','赵六':'444444444'} print(phonebook['张三']) #111111111三、字典的创建
1、使用花括号{}的方式
d1 = {'zhangsan':18,'lisi':19,'wangwu':20} print(d1) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20} #空字典创建 d1 = {} print(d1) # {}2、使用内置函数dict()
#传递字典参数 d2 = dict({'zhangsan':18,'lisi':19,'wangwu':20}) print(d2) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20} #传递带元组的列表 d2 = dict([('zhangsan',18),('lisi',19),('wangwu',20)]) print(d2) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20} #传递zip迭代对象 d2 = dict(zip(['zhangsan','lisi','wangwu'],(18,19,20))) print(d2) # {'zhangsan': 18, 'lisi': 19, 'wangwu': 20}四、字典的增删改查
1、查操作
#使用[]的方法传递索引 d1 = dict([('name','zhangsan'),('age',18)]) print(d1['name']) print(d1['age']) #get方法 print(d1.get('name')) # zhangsan print(d1.get('age')) # 18 print(d1.get('abc','NONE')) # get允许我们自定义返回值,如果不存在对应值或索引时
2、增操作
3、改操作
d1['age'] = '27' d1.update(wang = 22,tianqi = 23) d1.update({'name':'zhangsan1'}) d1.update(hobby = 'read') d1.update([('tianqi',23),('zhangsan',25)]) print(d1) # {'name': 'zhangsan1', 'age': '27', 'hobby': 'read', 'wang': 22, 'li': 16, 'tianqi': 23, 'zhangsan1': 18, 'zhangsan': 25}4、删操作
d1 = {'name': 'zhangsan1', 'age': '27', 'hobby2': 'games', 'hobby1': 'read', 'zhangsan': 25} d1.pop('name') # 删除一个指定key d1.popitem() #随机删除一个key del(d1['age']) # 删除一个指定key print(d1) # {'hobby2': 'games', 'hobby1': 'read'} d1.clear() # 清空列表 print(d1) # {}五、字典的视图
1、调用keys,values,iteams方法打印字典视图
print(d1.keys(),type(d1.keys())) # dict_keys(['name', 'age', 'hobby2', 'hobby1', 'zhangsan'])六、为字典设置默认值
1、使用dict.setdefault()方法为字典设置默认值
# 为字典设置默认值 d1 = dict([('name','zhangsan'),('age',18),('hobby','games')]) print(d1.setdefault('name')) # zhangsan 当key-value存在时,返回对应值 print(d1.setdefault('score',90)) # 90 # 当key-value不存在时,赋予默认值,并添加到字典中 print(d1) # {'name': 'zhangsan', 'age': 18, 'hobby': 'games', 'score': 90}七、借助字典创建格式化字符串
d1 = dict([('name','zhangsan'),('age',18),('hobby','games')]) # 使用%作为占位符 print('名字是:%s,年龄是:%i,爱好是:%s' % (d1['name'],d1['age'],d1['hobby'])) print('名字是:%(name)s,年龄是:%(age)i,爱好是:%(hobby)s' % d1) # 使用{}作为占位符 print('名字是:{},年龄是:{},爱好是:{}' .format(d1['name'],d1['age'],d1['hobby'])) print('名字是:{name},年龄是:{age},爱好是:{hobby}' .format_map(d1))另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前题目:Python字典的介绍和使用-创新互联
本文路径:http://scyanting.com/article/dhdpho.html