上一篇:流程控制-Python<二>

  1. 因为列表具有pop、append、insert方法,因此列表可以当作堆、栈使用。由于性能问题,不建议当作堆。(堆:队列优先,先进先出(FIFO—first in first out)栈:先进后出(FILO—First-In/Last-Out))
  2. 列表的pop、insert方法,使得列表可以当作队列使用,先入先出,但是在列表的开头做插入或者弹出都非常慢,因为要移动其他元素。需要用到队列,建议使用collections.deque。
  3. 可以使用map来创建队列,map(func,*iterables)
    >>> list(map(lambda x:x**2,range(23)))
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484]
  4. 创建列表的"[ ]",可以包含复杂的表达式,和嵌套函数
    >>> test=[ x**2 for x in range(3) ]
    >>> test
    [0, 1, 4]
  5. 列表删除元素方法及删除列表方法:remove、pop、clear、del。remove与pop都只能删除一个元素、clear清空列表。del可以切片删除。
    >>> test=[0,1,2,3,4]
    >>> test.remove(3)
    >>> test
    [0, 1, 2, 4] >>> test=[0,1,2,3,4]
    >>> test.pop()
    4
    >>> test
    [0, 1, 2, 3]
    >>>
    >>> test.pop(1)
    1
    >>> test
    [0, 2, 3]
    >>> >>> test=[0,1,2,3,4]
    >>> test.clear()
    >>> test
    [] >>> test=[0,1,2,3,4]
    >>> del test[0:2]
    >>> test
    [2, 3, 4]
    >>> del test[:]
    >>> test
    []
    >>> del test
    >>> test
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'test' is not defined
    >>>
  6. 序列主要以下几种类型:
    • 3种基本序列类型(Basic Sequence Types):list、tuple、range (补:range() 函数返回的结果是一个整数序列的对象,而不是列表。tuple就是元组)
    • 专门处理文本的附加序列类型(Text Sequence Types):str
    • 专门处理二进制数据的附加序列类型(Binary Sequence Types): bytes、bytearray、memoryview

    按照序列是否可被改变分类:

    • 可变序列: list
    • 不可变序列:tuple、str
  7. tuple元组是标准的序列类型,不支持个别项目分配
    >>> a=6,7,8,89,9
    >>> a
    (6, 7, 8, 89, 9)
    >>> a[0]=2
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
    >>>

    但是tuple可以包含可变对象

    >>> a=43,4,5,6,[4,4,4,4]
    >>> a
    (43, 4, 5, 6, [4, 4, 4, 4])
    >>> a[4][0]=99999
    >>> a
    (43, 4, 5, 6, [99999, 4, 4, 4])
    >>>
  8. tuple的创建,当为空元素和一个元素的情况
    >>> a=()
    >>> a
    ()
    >>> a=0,
    >>> a
    (0,)
    >>>

    tuple的解压缩

    >>> a,b,c=3,4,5
    >>> a
    3
    >>> b
    4
    >>> c
    5
    >>>

    tuple的打包

    >>> a=3,4,5,5
    >>> a
    (3, 4, 5, 5)
    >>>
  9. 字典的键必须是不可变的对象,例如字符串、数字、元组且元祖不能直接或间接的包含可变对象。字典的健不可以为列表,因为列表可以使用索引分配、del 切片 、append、extend等方法更改list对象。
  10. 想要在相反的情况下循环一个列表,可以使用reversed函数
    >>> for i in reversed(range(1,6,1)):
    ... print(i)
    ...
    5
    4
    3
    2
    1
    >>>
  11. is 、 is not 判断元素是否相等
    >>> a=[]
    >>> b=[]
    >>> a is b
    False
    >>> a=9
    >>> b=9
    >>> a is b
    True
    >>> a is not b
    False
    >>>
  12. in、not in 判断是否在某个序列里
    >>> test="basecee"
    >>> 'a' in test
    True
    >>> 'f' in test
    False
    >>> 'f' not in test
    True
    >>> "ba" in test
    True
  13. 所有的比较运算符都有相同的优先级,比所有的数值运算符都要低。 这里‘< ,>’优先级低于‘+’
    >>> 6+8>12
    True
    >>> 13<6+9
    True
    >>>
  14. 布尔运算符的优先级低于比较运输符
    >>> 12==10 or 10==10
    True
    >>> 10>5 and 9<0
    False
    >>>

阅读网址:https://docs.python.org/3/tutorial/datastructures.html

数据结构-Python3.7<三>的更多相关文章

  1. COJ966 WZJ的数据结构(负三十四)

    WZJ的数据结构(负三十四) 难度级别:C: 运行时间限制:20000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给一棵n个节点的树,请对于形如"u  ...

  2. COJ967 WZJ的数据结构(负三十三)

    WZJ的数据结构(负三十三) 难度级别:C: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...

  3. COJ970 WZJ的数据结构(负三十)

    WZJ的数据结构(负三十) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给你一棵N个点的无根树,点和边上均有权值.请你设计 ...

  4. COJ968 WZJ的数据结构(负三十二)

    WZJ的数据结构(负三十二) 难度级别:D: 运行时间限制:5000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给你一棵N个点的无根树,边上均有权值,每个点上有 ...

  5. COJ969 WZJ的数据结构(负三十一)

    WZJ的数据结构(负三十一) 难度级别:D: 运行时间限制:3000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 A国有两个主基站,供给全国的资源.定义一个主基站 ...

  6. COJ 0967 WZJ的数据结构(负三十三)

    WZJ的数据结构(负三十三) 难度级别:E: 运行时间限制:7000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 请你设计一个数据结构,完成以下功能: 给定一个大 ...

  7. COJ 0970 WZJ的数据结构(负三十)树分治

    WZJ的数据结构(负三十) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 给你一棵N个点的无根树,点和边上均有权值.请你设计 ...

  8. 20172328 2018-2019《Java软件结构与数据结构》第三周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第三周学习总结 概述 Generalization 本周学习了第五章:队列.主要内容包含队列的处理过程.如何用对例如求解问 ...

  9. 20172328《程序设计与数据结构》实验三 敏捷开发与XP实践报告

    20172328<程序设计与数据结构>实验三 敏捷开发与XP实践报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志强 ...

随机推荐

  1. MFC禁用关闭按钮

    有时候我们在写MFC程序时,需要在对话框中开启线程处理一些事情,如果在线程执行过程中点击关闭按钮,会导致程序崩溃. 这里介绍一种解决方法,禁用关闭按钮 解决方法 开启线程前禁用关闭按钮 CMenu* ...

  2. 曙光服务器挂载EMC存储

    1.登录集群(用户名密码远程登录,然后切换到root用户) 2.连接主机:ssh node72 3.在主机下进行存储挂载: 1)fdisk -l 查看磁盘信息,如下图所示: 2)查看磁盘挂载信息:mo ...

  3. 发布本地项目和源码到maven私服中

    有时候我们会使用第三方包到我们的项目中,但是想看源码的时候,需要下载源码查看,十分麻烦. 不如把源码上传到maven私服中,这样查看源码的时候就可以直接从mvaen nexus下载直接查看了. 方法如 ...

  4. Django积木块二——邮箱

    邮箱 django中自带的功能,因为登录注册都需要邮箱,因此新增了一个小的app--utils用来存放 # email_send.py import random from django.core.m ...

  5. Exception、Error、运行时异常与一般异常有何异同

    转自博客  https://blog.csdn.net/m0_37531231/article/details/79502778 一.开场白 对于程序运行过程中的可能出现异常情况,java语言使用一种 ...

  6. AssetBundle使用心得【资源加载】

    0.资源加载方式 静态资源 Asset下所有资源称为静态资源 Resources资源 Resources目录下,通过实例化得到的资源 AssetBundle资源 又称为增量更新资源 1.什么是Asse ...

  7. SDWebImage源码分析

    1.概述 SDWebImage是iOS开发中,被广泛使用的一个第三方开源库,提供了图片从加载.解析.处理.缓存.清理等一些列功能,让我们能够专心于业务的处理.本篇会从SDWebImage的源码,来一步 ...

  8. 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性

    [源码下载] 背水一战 Windows 10 (78) - 自定义控件: 基础知识, 依赖属性, 附加属性 作者:webabcd 介绍背水一战 Windows 10 之 控件(自定义控件) 自定义控件 ...

  9. mysql之UPDATE,SELECT,INSERT语法

    一 :UPDATE语法   UPDATE 是一个修改表中行的DML语句. #单表语法(常用) UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET as ...

  10. spring boot -thymeleaf-日期转化

    <span th:text="${#dates.format(date)}" ></span><span th:text="${#dates ...