• 列表和元组的区别


    python基础

    列表和元组的区别

    1. 列表(list)

      列表一旦创建了我们就可以根据自己的需要随意改变他的内容;

      >>> list=[1,2,3,4,5,6]
      >>> list[0]=8
      >>> list[6]=0
      >>> list
      [8, 2, 3, 4, 5, 6]
      

      可以为列表添加新的数据:

      >>> len(list) #查看这个列表中有多少数据
      6
      >>> list.append(7) #在列表尾插入
      >>> list
      [8, 2, 3, 4, 5, 6, 7]
      >>> len(list)
      7
      >>> list.insert(3,10)  #在列表任意位置插入数据,第一个参数表示索引,第二个参数表示插入的数据
      >>> list
      [8, 2, 3, 10, 4, 5, 6, 7]
      >>> 
      

    ​ 这是因为list支持resize操作,当有新的数据添加进入列表时,如果大于当前的容量,就会开辟新的list,将原有的元素复制到新的list中,然后将原有的list删除。

    注意 利用切片取得的数据类型还会是list

    >>> type(list[:2])
    <class 'list'>
    
    1. 元组(Tuple)

      元组是固定不可变的。这意味着一但元组被声明,他的内容无法被修改,大小也无法改变。

      >>> tuple=(1,2,3,4)
      >>> tuple
      (1, 2, 3, 4)
      >>> tuple[2]
      3
      >>> tuple[2]=8
      Traceback (most recent call last):
        File "<pyshell#13>", line 1, in <module>
          tuple[2]=8
      TypeError: 'tuple' object does not support item assignment
      

      虽然tuple不支持改变大小,但是我们可以将两个tuple合并起来。

      >>> t=(5,6,8,6)
      >>> t+tuple
      (5, 6, 8, 6, 1, 2, 3, 4)
      

      与list.append比较list添加元素的时间复杂读为O(1),而tuple这种方式的时间复杂度为O(n)

    2. 总结

      1. 列表是动态数组,它们不可变且可以重设长度(改变其内部元素的个数)。
      2. 元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
      3. 元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。
  • 相关阅读:
    lintcode:Flip Bits 将整数A转换为B
    lintcode:strStr 字符串查找
    lintcode:Subtree 子树
    lintcode 容易题:Partition Array by Odd and Even 奇偶分割数组
    lintcode:在二叉查找树中插入节点
    lintcode:在O(1)时间复杂度删除链表节点
    lintcode:哈希函数
    lintcode:合并排序数组 II
    lintcode:合并排序数组
    lintcode:数飞机
  • 原文地址:https://www.cnblogs.com/SSPOFA/p/11632323.html
Copyright © 2020-2023  润新知