学习廖雪峰python3笔记_dict和set

dict__介绍

  • dict --> dictionary(字典)--> python内置 --> 使用键-值(key-value)存储
  • dict --> 优点 --> 无论表多大,查找速度不会变慢,但是占用大量内存,内存浪费多 --> 原因:没有使用里list使用的遍历,通过建立*

    索引或内部计算出查找值的内存地址(通过哈希Hash*算法)

dict__操作

  • 查询和插入操作
>>> l = {'L': 95, 'YL': 96, 'LYL': 97}
>>> l['LYL']
97
>>> l['LYL'] = 17
>>> l['LYL']
17
  • 插入时key不存在报错
>>>l = ['YLY’]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'YLY'
  • 避免key不存在错误
  • 方法一:通过in判断key是否存在
    >>> 'YLY' in l
    False
  • 方法二:通过dict提供的get方法
    >>> l.get('YLY')
    >>> l.get('YLY', -1)
    -1
  • 删除key
>>>l.pop('LYL')
97
>>>l
{'L': 95, 'YL': 96}
  • 注意:dict的key必须是不可变对象-->保证hash的正确性
>>> key = [1, 2, 3]
>>> l[key] = 'a list'
Traceback (most recent call last)
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

set__介绍

  • 类似于dict-->不存储value-->key不能重复

set__操作

  • 创建set,要提供一个list作为输入的集合
>>> l = set([1, 2, 3])
>>> l
{1, 2, 3}
  • 重复元素在set中被自动过滤:
>>> l = set([a, a, b, b, c, c)]
>>> l
{a, b, c}
  • 添加元素,重复添加不会有效果--add(key)
>>> l.add(d)
>>> l
{a, b, c, d}
  • 删除元素--remove(key)
>>> l.remove(d)
>>> l
{a, b, c}

python笔记——dict和set的更多相关文章

  1. python笔记-dict字典的方法2

    #!/usr/bin/env python #-*- coding:utf-8 -*- ''' 概述: 使用键值(key-value)存储,具有极快的查找速度 注意:字典是无序的 key的特性: 1. ...

  2. python笔记-dict字典的方法

    #!/usr/bin/env python #-*- coding:utf-8 -*- #打印0001-9999的数字 for i in range(9999): s = "%04d&quo ...

  3. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

  4. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  5. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  6. python笔记 - day8

    python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...

  7. python笔记 - day5

    python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...

  8. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  9. s21day16 python笔记

    s21day16 python笔记 一.模块 1.1 模块的定义 模块的定义 可以吧一个py文件或一个文件夹(包)当作一个模块,以便于以后其他py文件的调用 包的定义(python2与python3的 ...

随机推荐

  1. TTTTTTTTTTTT POJ 2112 奶牛与机器 多重二分匹配 跑最大流 建图很经典!!

    Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 15682   Accepted: 5597 ...

  2. 第一次的迷宫为队列版,这个为搜索版x(自己写的嘿嘿)

    错误原因:第一次提交的时候把Yes跟No输错了都输为大写:…… 代码来啦! #include<cstdio> #include<iostream> using namespac ...

  3. JDK_API剖析之java.net包

    为实现网络应用程序提供类.(按照字母顺序排序) 1.Authenticator 抽象类 自1.2开始有 无父类和接口 Authenticator 类表示懂得如何获得网络连接验证的对象.通常,它通过提示 ...

  4. JavaWeb_EL表达式存储数据及获得项目路径

    菜鸟教程 传送门 EL表达式[百度百科]:EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供 ...

  5. Zookeeper入门(七)之Java连接Zookeeper

    Java操作Zookeeper很简单,但是前提要把包导对. 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一.导入依赖 < ...

  6. 【Spark机器学习速成宝典】模型篇08保序回归【Isotonic Regression】(Python版)

    目录 保序回归原理 保序回归代码(Spark Python) 保序回归原理 待续... 返回目录 保序回归代码(Spark Python) 代码里数据:https://pan.baidu.com/s/ ...

  7. [论文理解] Spatial Transformer Networks

    Spatial Transformer Networks 简介 本文提出了能够学习feature仿射变换的一种结构,并且该结构不需要给其他额外的监督信息,网络自己就能学习到对预测结果有用的仿射变换.因 ...

  8. Lombok 学习指南

    转自:https://segmentfault.com/a/1190000020864572 一.Lombok 简介 Lombok 是一款 Java 开发插件,使得 Java 开发者可以通过其定义的一 ...

  9. ControlTemplate in WPF —— ListBox

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...

  10. Delphi中基本控件之SaveDialog控件的使用总结

    首先向Form窗体拖一个SaveDialog控件,Name属性改为:dlgSave,然后添加一个按钮,Caption属性改为:浏览,Name属性改为:btnBrowse. 然后双击浏览按钮添加如下代码 ...