字典dict

Python内置字典,通过key-value进行存储,字典是无序的,拓展hash

names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]

给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。

用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢

>>> d = {'aa':1,'bb':2,'cc':3}
>>> d['aa'] # 可以直接根据名字来查找
1

为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢

在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

key-value的存储,是在放进去的时候必须通过key的值算出value的存放位置,这样拿的时候也是根据value的值去内存中拿

把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

>>> d
{'aa': 1, 'bb': 2, 'cc': 3}
>>> d['hh']= 88
>>> d
{'aa': 1, 'bb': 2, 'cc': 3, 'hh': 88}

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

>>> d['lal'] = 88
>>> d
{'aa': 1, 'bb': 2, 'cc': 3, 'hh': 88, 'lal': 88}

如果key不存在,dict就会报错:

避免key不存在的错误,通过in判断key是否存在

1.

>>> d
{'aa': 1, 'bb': 2, 'cc': 3, 'hh': 88, 'lal': 88}
>>> 'in' in d
False
>>> 'cc' in d
True

get()

>>> d.get('hahah')     # key不存在 ,返回None 在命令行中None是不显示的
>>> d.get('hahah',-1) # 可以自定义返回值 -1
>>> d.get('hh') #key 存在,返回value
88

增加字典元素两种方法

1.

>>> dict1 = {1:223}
>>> dict1[1] = 'ahah'
  1. setdefault
>>> dict1.setdefault(2,'hello')
'hello'
>>> dict1
{1: 'ahah', 2: 'hello'}
>>>

删除Python字典

>>> dict1
{1: 'ahah', '1': 233234, 2: 'hello'}
>>> del dict1[1] # 用的是方括号 删除指定的key
>>> dict1
{'1': 233234, 2: 'hello'}
>>> del dict1[2]
>>> dict1
{'1': 233234} >>> dict1.pop('1') # 用的pop()
233234
>>> dict1
{}
>>>

清空字典

dict1.clear()

删除字典对象

del dict1

集合set

set同字典相比,只有key,没有value.

Python 字典dict 集合set的更多相关文章

  1. python 字典dict - python基础入门(15)

    前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict. python中的字典可与字符串/列表/元组不同,因为 ...

  2. python字典dict的增、删、改、查操作

    ## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...

  3. Python 字典 dict() 函数

    描述 Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. 语法 dict() 函数函数语法: dict(key/value) 参数说明: ...

  4. 'dict_values' object does not support indexing, Python字典dict中由value查key

    Python字典dict中由value查key 众所周知,字典dict最大的好处就是查找或插入的速度极快,并且不想列表list一样,随着key的增加越来越复杂.但是dict需要占用较大的内存空间,换句 ...

  5. Python — 字典dict 和 集合set

    字典dict : dict和set的key都是不可变对象 对于不变对象来说,调用对象自身的任意方法,也不会改变对象自身的内容.相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可 ...

  6. 流畅的python 字典和集合

    介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...

  7. Python 字典Dict概念和操作

    # 字典概念:无序的, 可变的键值对集合 # 定义 # 方式1 # {key: value, key: value...} # 例如 # {"name": "xin&qu ...

  8. 转:Python字典与集合操作总结

    转自:http://blog.csdn.net/business122/article/details/7537014 一.创建字典 方法①: >>> dict1 = {} > ...

  9. Python字典和集合

    Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...

随机推荐

  1. Spring Boot 学习系列(11)—tomcat参数配置建

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在SpringBoot项目中,使用的是内嵌的Tomcat容器,相关的配置项如下表: 除去和默认值相同的配置, ...

  2. MySQL之避免插入重复数据

    INSERT ignore INTO `$table_name`($field_name) VALUES(),(),(),()"; //若重复数据可以添加,请在对应的数据表字段中添加数据库索 ...

  3. C笔记列表

    笔记列表 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明. 要理解指针就要先理解计算机的内存.计算机内存会被 ...

  4. iOS集成支付宝支付

    本文由本人原创发表于博客园,转载请注明出处 http://www.cnblogs.com/wangqw/p/5074907.html 一. 开发前准备 iOS 支付宝SDK下载地址:(内含iOS An ...

  5. docker Mac安装和使用

    1.安装docker brew cask install docker 2.安装后可以用命令查看版本 docker --version 3.build java 项目(jar) docker buil ...

  6. Java EE学习笔记(四)

    Spring的数据库开发 1.Spring JDBC 1).Spring JDBC模块的作用:Spring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作,使得开发人员可以 ...

  7. (转)Unity3D中常用的数据结构总结与分析

    http://www.cnblogs.com/murongxiaopifu/p/4161648.html#array   1.几种常见的数据结构 常碰到的几种数据结构:Array,ArrayList, ...

  8. php __autoload函数 加载类文件

    面向对象的开发时,大家肯定都会遇到这样的问题,就是加载文件,一般都是加文件的头部inclue_once,require一大堆,看着很让人烦.当然你可以自己写程序来加载.php5以后引入了__autol ...

  9. .Net魔兽登录页面

    一,页面部分展示 二.代码展示 1.登录页面: public partial class FrmLogin : Form { public FrmLogin() { InitializeCompone ...

  10. Django中对单表的增删改查

    之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象   book_obj=Book.objects.creat ...