Python基础数据结构之dict
本章是Python基础数据结构的第三篇,由于之前没有接触过太多的Python版本的数据结构,所以在学习的过程中集百家之长和自己的见解,加以实践,学习Python。Python中用到dict的方法,和注意事项都以代码的形式体现#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time: 2017-4-24 10:35# @Author
·
本章是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: PyCharm
import operator
#1.初始化
dict1 = {"Alice":"sdfasdfasdf","Beth":"sdfasdfasdfasdfasdf"}
dict2 = {"abc":2323,"asdfasd":3.00023,99:99}
#2.
#3.访问字典里的值,如果键不存在则报错
print(dict1['Alice'])
#4.修改字典里的值
dict1['Beth'] = 3.00030330303
print(dict1['Beth'])
#5.删除字典里的元素
del dict2['abc']
#这一行报错
#print(dict2['abc'])
#清空字典所有条目,字典中的键值对被清空,但是字典对象还存在
dict2.clear()
print(dict2)
#删除字典,包括键值对,字典对象
del dict2
dict3 = {"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)
#如果没有设置默认值的话,则所有默认值为None
print(newdict)
#统一设置默认值10
newdict2 = dict.fromkeys(seq,10)
print(newdict2)
#11.4返回指定键的值,如果值不在字典中,返回default值 = None
print(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 返回字典中所有的key
print(newdict2.keys())
更多推荐
已为社区贡献7条内容
所有评论(0)