博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python内置数据结构之list
阅读量:5743 次
发布时间:2019-06-18

本文共 2998 字,大约阅读时间需要 9 分钟。

列表简单总结

  • 类和实例之间的理解

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

            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]] 和 *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,如需转载请自行联系原作者
你可能感兴趣的文章
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
工作中如何做好技术积累
查看>>
怎么用sysLinux做U盘双PE+DOS??
查看>>
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
Microsoft Excel 2000/2003修复工具
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>
F#初学笔记06
查看>>
实战:将企业域名解析委派给企业DNS服务器
查看>>
在Lync 2013环境部署Office Web Apps
查看>>
微软大会Ignite,你准备好了么?
查看>>
读书笔记-高标管事 低调管人
查看>>
Master带给世界的思考:是“失控”还是进化
查看>>
用户和开发者不满苹果iCloud问题多多
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>