python笔记--字典

字典dict

字典使用键-值(key-value)存储,在一个字典中键必须相互不同。

字典具有很快的速度,因为使用了key-value存储方式,在放进去的时候会根据key算出vlaue的存放位置,这样根据key可以直接定位到value。

序列是以连续的整数为索引,与字典不同的是,字典以关键字为索引,关键字可以是任意不可变对象(不可修改),通常是字符串或数值,这也保证了value的存储位置不会变化。

由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉。

需要占用大量的内存,内存浪费多。

一、定义字典

>>> name={‘zhangsan‘:90,‘lisi‘:80,‘wangwu‘:70}

使用大括号括起来,键和值用冒号分隔,多个键-值用逗号分隔,一个键只能对应一个值。

二、基本操作

#返回所有键值

>>> name.items()
[(‘lisi‘, 80), (‘zhangsan‘, 90), (‘wangwu‘, 70)]

#返回所有键

>>> name.keys()
[‘lisi‘, ‘zhangsan‘, ‘wangwu‘]

#返回所有值

>>> name.values()
[80, 90, 70]

注意:以上返回的结果都是以列表的形式

#添加键值

>>> name[‘zhaoliu‘]=60
>>> name
{‘lisi‘: 80, ‘zhaoliu‘: 60, ‘zhangsan‘: 90, ‘wangwu‘: 70}

#获取单个键的值

>>> name[‘zhangsan‘]
90

注意:如果这个键不存在就会输出 KeyError 错误

>>> name.get(‘zhangsan‘)
90

注意:如果这个键不存在,输出结果为空。

#删除指定指定的键值

>>> name.pop(‘zhangsan‘)
90
>>> name
{‘lisi‘: 80, ‘zhaoliu‘: 60, ‘wangwu‘: 70}

#删除第一个键值

>>> name.popitem()
(‘lisi‘, 80)
>>> name
{‘zhaoliu‘: 60, ‘wangwu‘: 70}

#把其他字典的键值添加到本字典中

>>> name
{‘zhaoliu‘: 60, ‘wangwu‘: 70}
>>> name1={‘jerry‘:88,‘mike‘:66}
>>> name.update(name1)
>>> name
{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}

#拷贝为一个新的字典

>>> name2=name.copy()
>>> name2
{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}

注意:name2不会随着name变化

>>> name3=name
>>> name3
{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}

注意:name3会随着name进行变化

#判断字典中是否有这个键

>>> name.has_key(‘wangwu‘)
True
>>> name.has_key(‘fjc‘)
False

#如果字典中有这个键,就返回对应的值,没有则添加这个键到字典中,值默认为None

>>> name
{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}
>>> name.setdefault(‘mike‘)
66
>>> name.setdefault(‘mike‘,66)
66
>>> name.setdefault(‘mike‘,77)
66
>>> name
{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}
>>> name.setdefault(‘fjc‘)
>>> name
{‘mike‘: 66, ‘fjc‘: None, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}
>>> name.setdefault(‘miss‘,50)
50
>>> name
{‘mike‘: 66, ‘fjc‘: None, ‘zhaoliu‘: 60, ‘miss‘: 50, ‘jerry‘: 88, ‘wangwu‘: 70}

注意:.setdefault()的括号中可以同时包含键和值。

#根据一个列表生成字典中的键,值都为None

>>> lst=[1,2,3,4,5]
>>> dic={}.fromkeys(lst)
>>> dic
{1: None, 2: None, 3: None, 4: None, 5: None}

#清空字典

>>> dic.clear()
>>> dic
{}

#字典迭代器

.iteritems()   # 获取所有键值

.iterkeys()    # 获取所有键

.itervalues() # 获取所有值

>>> a=name.iteritems()
>>> a.next()
(‘mike‘, 66)

注意:多次执行.next()可以一一列出键值

#一个键多个值

就是将值改成列表、元组或字典

>>> b={‘a‘:[1,2,3],‘b‘:2}
>>> c={‘a‘:(1,2,3),‘b‘:2}
>>> d={‘a‘:{‘c‘:3,‘d‘:4},‘b‘:2}

 

时间: 2024-10-10 14:58:59

python笔记--字典的相关文章

python笔记-----字典、元组操作

1.字典 是一种key-value的数据类型,使用就像字典 无序的因为无下标 创建一个字典: info = {     'stu1':'qq',     'stu2':'ww',     'stu3':'ee', } print(info) 输出结果 {'stu1': 'qq', 'stu2': 'ww', 'stu3': 'ee'} 1.1增改 有就修改,没有就增加 info['stu1'] = "gg" info['sut4'] = 'hhh' print(info) {'stu1

《python基础教程(第二版)》学习笔记 字典(第4章)

<python基础教程(第二版)>学习笔记 字典(第4章)创建字典:d={'key1':'value1','key2':'value2'}lst=[('key1','value1'),('key2','value2')]; d=dict(lst)d=dict(key1='value1', key2='value2')字典基本操作:d={'key1':'value1','key2':'value2'}; len(d) ==> 2 #字典中的键值对数量d={'key1':'value1','

Python笔记:替代case语句的字典和匿名函数(lambda)

在linux的shell中我们习惯使用case语句来做分支处理,然而Python中却省略了这个函数,经过多方查找,发现其实case语句在C语言中是通过查对应的hash表,来进行跳转的.在Python中我们可以通过三种方法来实现这种功能.1.字典:2.lambda:3.switch类. 1.字典 dictCase={'case1':func1,'case2':func2....'caseN':funcN} #注意字典中对应的是函数名,不要圆括号. 在调用的时候使用字典的get函数来实现defaul

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a

整理python笔记

1.python笔记:while.if.for.编码 2.  模拟登陆 3.  python笔记:字符.列表.字典.元祖.数据类型

玩蛇(Python)笔记之基础Part2

玩蛇(Python)笔记之基础Part2 一.列表 1.列表 别的语言叫数组 python牛逼非要取个不一样的名字 1 age = 23 2 name = ["biubiubiu", "jiujiujiu", 22, age] 3 # namecopy = name 4 # namecopy.pop() 5 print(name) 6 # print(namecopy) List 2.列表取值 正常index 从零开始,,取倒数加负号 倒数第一就是[-1] 3.列表

python笔记 - day8

python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/articles/5017742.html 大纲 面向对象三大特性之多态 类成员之静态字段和普通字段 类成员之普通方法和静态方法以及类方法 类成员之属性 类成员之成员修饰符 类成员之特殊成员 其他之isinstance和issubclass 其他之super的应用 实例之自定义有序字典 单例模式 基本异常

Python笔记_01列表 和元祖

Python笔记 第一章 列表和元祖 1.通用序列操作 所有序列都可以进行某些特定操作,包括:索引(indexing).分片(slicing).加(adding).乘(multiplying)以及检查某元素是否属于列表成员. 迭代:依次对序列中的每个元素重复执行某些操作. 序列的索引:通过元素在列表中的位置可以定位到该元素,这就是列表的索引,使用类似于list[0]对元素进行索引,索引0指向第一个元素.也可使用负数对元素进行索引,使用负数对元素索引时,列表中的最后一个元素由-1表示,例如list

Python笔记(四)

在<Python笔记(三)>中,我记录关于Python中序列问题的知识.个人觉得确实比Java中的集合框架简单.之前也说了,Python是一种高级面向对象的语言,它的每一个变量都称为对象.今天我接触了面向对象的编程.下面是这篇博客的目录: 1.类与对象 2.输入输出 3.异常 类与对象: 我们都知道面向对象的语言具备四个特性:抽象,继承,封装,多态.Java,C++是这样,Python也不例外.在Python中,我们定义一个类,使用关键字class.形式如下:class classname:.