python内置数据结构之list

简介:

列表简单总结

  • 类和实例之间的理解

            人类,哺乳类
            实例是某一类中的真实个体
  • 时间复杂度

            O(1)
            O(n)
            O(n**2)
    
            随着处理的数据逐渐增加,程序返回结果的时间变化的描述.
                O(1)表示无论程序处理的数据如何增加,返回结果的时间是常数
                O(n)随着处理数据的数量n的增加,返回结果的时间线性增长n
                O(n)随着处理数据的数量n的增加,返回结果的时间指数级增长n**2
  • list,链表,queue,stack

            list: 有序的、紧密的可变序列
            链表: 手拉手的有序序列
            queue: 有序队列,常用于先进先出模型
            stack: 常用于后进先出的有序队列
  • 列表O(1)操作:

            append()
            extend()
            pop()
            insert() 
                插入方法插入时的时间是O(1),但导致其他元素的后移,所使用的时间更久.慎用.
  • 列表O(n)操作:

            count()
            index()
            remove()
            pop(index)
  • 列表复制:

            ==,内容,值比较
            is,内存地址比较,是否是同一对象
            = , 赋值,此赋值仅复制了对象的引用
            list.copy, 列表的第一次简单元素深复制,嵌套结构仅复制引用
            copy.deepcopy, 深复制,递归复制所有对象本身
    
            浅复制
                l1=l2
                l1=l2.copy()
            深复制
                l1=copy.deepcopy()
    
            示例;
                >>> l1=[1,2,3,[1]]
                >>> l1
                [1, 2, 3, [1]]
                >>> l2=l1             # 直接复制
                >>> l3=l1.copy()      # 使用列表方法复制
                >>> l1 
                [1, 2, 3, [1]]
                >>> l2
                [1, 2, 3, [1]]
                >>> l3
                [1, 2, 3, [1]]
                >>> l1[0]=100         # 修改第一层列表中元素
                >>> l1
                [100, 2, 3, [1]]
                >>> l2
                [100, 2, 3, [1]]
                >>> l3                # copy()复制的元素不变
                [1, 2, 3, [1]]
                >>> l1[-1][0]=100     # 修改嵌套在里面的列表中元素
                >>> l1
                [100, 2, 3, [100]]
                >>> l2
                [100, 2, 3, [100]]
                >>> l3                # l2,l3都被修改
                [1, 2, 3, [100]]
  • ==和is示例;

                >>> l1
                [1, 2, 3]
                >>> l2=l1
                >>> l3=l1.copy()
                >>> id(l1)
                140604879543624
                >>> id(l2)
                140604879543624
                >>> id(l3)              
                140604745250184
                >>> l1 == l2
                True
                >>> l1 == l3
                True
                >>> l1 is l2
                True
                >>> l1 is l3
                False
  • append()和extend()区别

            L.append(object) -> None
            L.extend(iterable) -> None
    
            append() 将对象附加至列表尾部
            extend() 将可迭代对象的元素附加至列表尾部
    
            >>> l1
            [1, 2, 3]
            >>> l2
            ['a', 'b', 'c']
            >>> l1.append(l2)           # 将l2列表作为一个对象附加至列表l1
            >>> l1
            [1, 2, 3, ['a', 'b', 'c']]
            >>> l1.extend(l2)           # 将l2中的元素逐个附加至列表l2
            >>> l1
            [1, 2, 3, ['a', 'b', 'c'], 'a', 'b', 'c']
  • [[0],[0],[0]] 和 0*n 区别

            >>> l1 = [[0],[0],[0]]    # 创建三个不同的对象
            >>> l1
            [[0], [0], [0]]
            >>> id(l1[0][0])          # 不同的内存地址
            8948000
            >>> id(l1[1][0])
            8947968
            >>> id(l2[0][0])         # 同一内存地址,也就是同一对象
            8948000
            >>> id(l2[1][0])
            8948000
            >>> l2 = `0`*3          # 创建三个同一对象
            >>> l2
            [[0], [0], [0]]
            >>> l1[0][0]=1
            >>> l1
            [[1], [0], [0]]
            >>> l2[0][0]=1
            >>> l2
            [[1], [1], [1]]

本文转自 撒旦搞时间 51CTO博客,原文链接:http://blog.51cto.com/12074120/1968034,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 数据挖掘 索引
python数据分析——Python语言基础(数据结构基础)
数据结构是计算机科学中一种基本概念,其目的是确定数据元素之间的关系,实现数据的组织、存储和管理。了解和掌握常见的数据结构可以让我们更好地处理和管理数据
50 1
|
1天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-List篇
Redis入门到通关之Redis数据结构-List篇
|
10天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
53 0
|
10天前
|
索引 容器
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数
|
19天前
|
索引 Python
Python标准数据类型-List(列表)
Python标准数据类型-List(列表)
42 1
|
29天前
|
算法 Python
数据结构与算法 经典排序方法(Python)
数据结构与算法 经典排序方法(Python)
24 0
|
1月前
|
Python
深入理解Python数据结构中的深浅拷贝
深入理解Python数据结构中的深浅拷贝
|
1月前
|
存储 安全 Java
Python教程第3章 | 集合(List列表、Tuple元组、Dict字典、Set)
Python 列表、无序列表、字典、元组增删改查基本用法和注意事项
51 1
|
1月前
|
存储 数据可视化 索引
Python中List列表的妙用
Python中List列表的妙用
18 0
|
1月前
|
存储 Python
Python数据结构讲解字典
Python数据结构讲解字典
20 1