美文网首页
Python:Python语言中的序列

Python:Python语言中的序列

作者: dex0423 | 来源:发表于2020-07-22 01:02 被阅读0次

1. Python 序列分类

1.1. 按存储数据类型分类

  • 容器序列,
    -- 定义:容器序列可以存放不同类型的数据,即可以存放任意类型对象的引用;
    -- 包括:list,tuple,deque;
  • 扁平序列
    -- 定义:扁平序列只能容纳一种类型,也就是说其存放的是值而不是引用,扁平序列其实是一段连续的内存空间,由此可见扁平序列其实更加紧凑。但是它里面只能存放诸如字符、字节和数值这种基础类型。
    -- 包括:str,bytes,bytearray,array.array;

1.2. 按是否可变分类

  • 可变序列
    -- list,deque,bytearray,array;
  • 不可变序列
    -- str,tuple,bytes;

2. append & extend

  • append
    -- append 对不同类型的序列进行新增操作,是把新增序列作为一个元素添入;
>>> a = [1, 2, 3]
>>> b = (4, 5)
>>>
>>> a.append(b)
>>> print(a)
[1, 2, 3, (4, 5)]      # 注意:(4, 5) 是一个元组
  • extend
    -- extend 对不同类型的序列进行新增操作,会先 for 循环遍历新增序列中的元素,然后把这些元素逐个添入;
>>> a = [1, 2, 3]
>>> b = (4, 5)
>>>
>>> a.extend(b)
>>> print(a)
[1, 2, 3, 4, 5]        # 注意:4, 5 作为单独的元素出现在新列表

3. 序列切片

  • 列表全部元素组成新列表
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[::])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  • 列表全部元素组成 倒序 新列表
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[::-1])
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
  • 奇数位 元素组成新列表
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[::2])    # 2 为步长,表示每隔一位取一个元素
[1, 3, 5, 7, 9]
  • 偶数位 元素组成新列表
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[1::2])
[2, 4, 6, 8, 10]
  • 指定起始结束位置 截取列表
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[3:6])
[4, 5, 6]
  • 切片 结束位大于列表长度
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[0:100])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  • 切片 初始位大于列表长度
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> print(sample_list[100:])
[]
  • 尾部增加 新元素
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[len(sample_list):] = ["new"]
>>> print(sample_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'new']
  • 头部增加 新元素
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[:0] = ["new_1", "new_2"]
>>> print(sample_list)
['new_1', 'new_2', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  • 指定位置 增加元素
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[3:3] = ["new_1"]
>>> print(sample_list)
[1, 2, 3, 'new_1', 4, 5, 6, 7, 8, 9, 10]
  • 替换 指定起始位置 多位元素,= 号两边元素 数量相同
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[:3] = ["new_1", "new_2", "new_3"]
>>> print(sample_list)
['new_1', 'new_2', 'new_3', 4, 5, 6, 7, 8, 9, 10]
  • 替换 指定起始位置 多位元素,= 号两边元素 数量不同
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[:3] = ["new_1", "new_2"]        # =号左侧 3 个元素,=号右侧 2 个元素
>>> print(sample_list)
['new_1', 'new_2', 4, 5, 6, 7, 8, 9, 10]        # 注意:3 没有了,但并没有被替换成新元素
  • 奇数位 替换 同一元素,= 号两边元素 数量相同
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[::2] = [0] * 5        
>>> print(sample_list)
[0, 2, 0, 4, 0, 6, 0, 8, 0, 10]
  • 奇数位 替换 同一元素,= 号两边元素 数量不同,会报错!
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[::2] = [0] * 3                  # = 号左侧 5 个元素,=号右侧 3 个元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 3 to extended slice of size 5
  • 奇数位 替换 不同元素,= 号两边元素 数量相同
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[::2] = ["a", "b", "c", "d", "e"]
>>> print(sample_list)
['a', 2, 'b', 4, 'c', 6, 'd', 8, 'e', 10]
  • 奇数位 替换 不同元素,= 号两边元素 数量不同
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[::2] = ["a", "b", "c"]        # = 号左侧 5 个元素,=号右侧 3 个元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 3 to extended slice of size 5
  • 删除指定起始位置 元素
>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sample_list[:3] = []                      # 删除前三位
>>> print(sample_list)
[4, 5, 6, 7, 8, 9, 10]

4. array 数组

  • 与 list 不同,array 只能存放指定的数据类型;
  • array 的性能要比 list 高很多;

【TODO】

相关文章

  • Python:Python语言中的序列

    1. Python 序列分类 1.1. 按存储数据类型分类 容器序列,-- 定义:容器序列可以存放不同类型的数据,...

  • 序列

    相信你已经接触过C语言中数组的概念。类似C语言中的数组,Python中有序列的概念。序列是一个集合概念,即,你可以...

  • 《python基础教程》读书笔记第二章-列表和元组

    31.python的序列感觉和其他语言中的数组类似。初看类似,实则强大太多! 2.序列和元组的区别在于序列可以修改...

  • Python高级知识点学习(四)

    序列类型 Python中的序列类型,序列类型可以使用for循环遍历。 序列类,序列是python中非常重要的协议,...

  • python完全参考教程

    Python基础 Hello World! Python基础 基本数据类型 Python基础 序列 Python基...

  • 数据团Python_3. Python序列及整体概述及通用操作

    3. Python序列及整体概述及通用操作 序列是Python最基本的数据结构。 序列可变序列:list不可变序列...

  • Python学习笔记之字典

    字典是Python语言中唯一的映射类型。字典在某些语言中被称为联合内存或者联合数组。序列是以连续的整数为索引,而字...

  • python列表

    本篇将介绍python中的列表,更多内容请参考:Python学习指南 一、序列 在python中有六种内建的序列:...

  • 2018-04-07

    # Python序列解包

  • python序列类型包括哪三种?

    python序列类型包括哪三种 python序列类型包括:列表、元组、字典 列表:有序可变序列 创建:userli...

网友评论

      本文标题:Python:Python语言中的序列

      本文链接:https://www.haomeiwen.com/subject/tjpwkktx.html