zoukankan      html  css  js  c++  java
  • 数据结构-Python3.7<三>

    上一篇:流程控制-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

  • 相关阅读:
    靶机练习
    靶机练习
    靶机练习
    CTF-攻防世界-Web_php_unserialize(PHP反序列化)
    漏洞复现
    靶机练习
    靶机练习
    靶机练习
    糗事集合
    慕课前端入门-JS事件
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9329091.html
Copyright © 2011-2022 走看看