一、列表

  定义:用于存储一组数据的有序序列

  语法声明:[元素1, 元素2, 元素3, ...]

二、特点

  1、列表是有序的
  2、列表中可以存储重复的数据
  3、列表中可以存储不同数据类型的数据
  4、列表是一个可变的数据类型;可以修改的

三、方法

  1、增

    (1).append(obj) 末尾追加
    (2).insert(index, obj) 在指定位置添加元素
    (3).extend(iterable) 可迭代对象(序列), 将序列中的元素一次性的追加在列表的末尾
    (4)+
    (5)*

  2、删

    (1).pop(index) 删除指定索引值的元素
    (2).pop() 默认删除最后一个元素
    (3).remove(obj) 删除指定的元素
    (4).clear() 清空列表, ---> 空列表

    (5)del python内置的关键字 功能是删除
    (6)del list[index] 可以用来删除列表中的某个指定索引值的元素
    (7)del list 也可以用来删除整个列表
        del str 也可以用来删除一个字符串

  3、改

    (1)通过索引值进行更改 --> 列表名[索引值] = 新值
    (2).reverse() : 反转这个列表, 将列表中的元素倒过来
    (3).sort(key, reverse=False)
      key: 排序的规则
      reverse: 默认为False 正序
      可以修改为True 倒序

  4、查

    (1).count(obj) 查询元素在列表中出现的次数
    (2).index(obj) 查询元素从左开始第一次出现在列表中的索引值,查询不到报错

四、嵌套列表

1 # isinstance(对象, 类型)  判断元素对象是否是某个类型的
2 list2 = [['a', 'b'], ['abc', 100], "abc", 100, [0.9, 0.7]]
3 for x in list2:
4     if isinstance(x, list):  # x 是列表:
5         for y in x:
6             print(y)
7     else:
8         print(x)

五、深浅拷贝

  列表的拷贝:
    1、列表在内存中的数据存储
      整个列表有个内存地址, 列表中的每个元素(理解为一个个个的变量), 每个变量存储对应数据的内存地址

    2、浅拷贝
      浅拷贝的列表, 内层嵌套列表与被拷贝对象指向同一块地址;
      * 俗话曰: 通过浅拷贝出来的列表, 一旦内层嵌套列表发生改变, 拷贝对象和被拷贝对象, 的内层嵌套列表都会发生改变

    对于浅copy来说, 第一层创建的是新的内存地址, 而从第二层开始, 指向的都是同一个内存地址,所以对于第二层以及更深的层次来说,保持一致性。

1 import copy # 模块 .py文件 使用模块中的功能,第一步需要将模块导入到工作文件中
2 copy.copy() # 浅拷贝

    3、深拷贝  

1 import copy # 模块 .py文件 使用模块中的功能,第一步需要将模块导入到工作文件中
2 copy.deepcopy() # 深拷贝

    嵌套的可变数据类型重新开辟一块内存空间
    拷贝对象与被拷贝对象, 拥有独立的内存空间, 一方发生改变,另一方不受影响