学习廖雪峰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. JS大文件上传断点续传解决方案

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

  2. Postman(一)、断言

    postman常见断言方法介绍: 1.Clear a global variable (清除一个全局变量)  postman.clearGlobalVariable("variable_ke ...

  3. Jmeter(五)关联之正则表达式提取器

    我们在用Jmeter做接口或者性能测试时,经常会碰到第二个请求提交的的参数要从第一个请求返回的参数中获取,而这些参数值并不是固定的,是动态变化的,这种场景就要用到关联 Jmeter提供了一种叫做正则提 ...

  4. css3 水纹效果(仿写阿里云)

    效果图 什么也不说了,上代码. <!DOCTYPE html> <html> <head> <title>css3 水纹效果</title> ...

  5. git 指定自己的sshkey

    在服务器上生成ssh-key以后,需要把公钥放在github上,但是,这个公钥只能放在一个账户里,如果放在第二个账户里,就会提示这个key已经被用了,这是前提 一个可能的场景是这样的: 你们公司有好几 ...

  6. uni-app tabBar 踩坑

    { "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages { "pa ...

  7. js将伪数组转换为标准数组的多种方法

    在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合. 那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点: 按索引方式存储数据: 具有len ...

  8. LeetCode 300. 最长上升子序列(Longest Increasing Subsequence)

    题目描述 给出一个无序的整形数组,找到最长上升子序列的长度. 例如, 给出 [10, 9, 2, 5, 3, 7, 101, 18], 最长的上升子序列是 [2, 3, 7, 101],因此它的长度是 ...

  9. MSO Transponder 页面开发思路

    1. 确定Transponder开发页面分类,定义负责模块 2. 定义模块页面布局 3. 选择页面各数据对应的控件类型 4. 选定控件对应set/get所用方式 快捷键链接设置: http://www ...

  10. 用layui的 form.on提交表单如何禁止刷新页面

    答:只需要在 form.on里面的底部添加return false;即可 例如: form.on('submit(component-form-demo1)', function(data){ var ...