Python基础数据结构之dict

来源:互联网 发布:京东关键词优化 编辑:程序博客网 时间:2024/06/08 06:54

本章是Python基础数据结构的第三篇,由于之前没有接触过太多的Python版本的数据结构,所以在学习的过程中集百家之长和自己的见解,加以实践,学习Python。
Python中用到dict的方法,和注意事项都以代码的形式体现

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : 2017-4-24 10:35# @Author  : coderManFans# @Site    :#           python 字典(Dictionary)#           字典是另一种可变容器模型,且可存储任意类型对象#           字典的每个键值(key-->value)对用冒号(:)分割#           每个键值对之间用逗号(,)分割#           键必须是唯一的,值不唯一#           值可以取任何数据类型,但是键必须是不可变的,如字符串,数字或者元组##           字典键,值的特性#           1.字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但是键不行#           2.不允许同一个键出现两次,否则只取最后一次的值为准#           3.键必须不可变,所以可以用数字,字符串或者元组充当,所以用列表就不行、# @File    : dictDemo.py# @Software: PyCharmimport operator#1.初始化dict1 = {"Alice":"sdfasdfasdf","Beth":"sdfasdfasdfasdfasdf"}dict2 = {"abc":2323,"asdfasd":3.00023,99:99}#2.#3.访问字典里的值,如果键不存在则报错print(dict1['Alice'])#4.修改字典里的值dict1['Beth'] = 3.00030330303print(dict1['Beth'])#5.删除字典里的元素del dict2['abc']#这一行报错#print(dict2['abc'])#清空字典所有条目,字典中的键值对被清空,但是字典对象还存在dict2.clear()print(dict2)#删除字典,包括键值对,字典对象del dict2dict3 = {"a":'a',"b":'b',"c":'c'}dict4 = {"a":'a',"b":'b',"c":'c',"d":'d'}#6. 字典内置函数&方法,#7.字典比较#  Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象#print(cmp(dict3,dict4))print(operator.eq(dict3,dict4))#8.计算字典元素个数,就是键的总数print(len(dict4))print(len(dict3))#9.字典字符串输出打印print(str(dict4))#10. 字典类型的判断,如果变量是字典就返回字典类型print(type(dict4))#11.字典内置方法#11.1删除字典内所有元素dict4.clear()#11.2 复制字典,返回字典的浅复制dictCopy = dict3.copy()print(dictCopy)#11.3 从旧的字典创建新的字典# fromkeys()函数用于创建一个新的字典,以序列seq中元素作为字典的键,value为字典所有键对应的初始值# 语法 dict.fromkeys(seq,[,value])# 参数 seq--字典键值列表, value--可选参数,设置键序列(seq)的值# 返回值  返回字典新对象# seq元组对象seq = ('name','age','sex')newdict = dict.fromkeys(seq)#如果没有设置默认值的话,则所有默认值为Noneprint(newdict)#统一设置默认值10newdict2 = dict.fromkeys(seq,10)print(newdict2)#11.4返回指定键的值,如果值不在字典中,返回default值 = Noneprint(newdict.get('name'))#11.5判断键是否在字典中存在,是返回true,否返回false#旧版本的has_key已经不用了,用下面的方法print(newdict2.__contains__('name'))print(newdict2.__contains__('a'))#11.6 返回所有字典键值对,以列表返回可遍历(键,值)元组数组#[('a':'a'),('b':'b'),,,,]for i in newdict2.items():    print(i)print(newdict2.items())#11.7 设置默认值 dict.setdefault(key,default = None) 和get类似,如果键不存在与字典中,#将会添加键,并将值设置为default,否则不设置默认值print(newdict2.setdefault('age',2324))print(newdict2.get('age'))print(newdict2.setdefault('address',None))#11.8 字典键值对更新,将dict1中的键值对,更新到dict2#    注意如果有相同键,则以参数里的相同键对应的值为准,相当于newdict更新自己的值newdict.update(newdict2)print(newdict)#11.9 返回字典中所有的值print(newdict2.values())#11.10 返回字典中所有的keyprint(newdict2.keys())
0 0
原创粉丝点击