您的位置:首页 > 理论基础 > 数据结构算法

Python基础数据结构之dict

2017-04-26 19:05 239 查看
本章是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())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐