您的位置 首页 知识

一文搞懂Python_List和Tuple的区别

目录
  • 一、List和Tuple的基本概念
  • 二、核心区别一览表
  • 三、List和Tuple的高效用法
    • 1. List的高效操作
    • 2. Tuple的隐藏优势
  • 四、List和Tuple的性能对比
    • 五、到底该用List还是Tuple?
      • 六、你可能忽略的细节
        • 拓展资料

          一、List和Tuple的基本概念

          • List(列表):是 Python 内置的一种数据类型。 它是一种有序的集合,可以随时添加和删除其中的元素。
          • Tuple(元组):也是 Python 内置的一种数据类型。不可变的有序集合,一旦创建,元素不可更改。

          示例代码:

          my_list = [1, 2, 3]my_tuple = (1, 2, 3)

          • 注意:元组中只包含一个元素时,需要在元素后面添加逗号,my_tuple=(123,),如果不加逗号,创建出来的就不是 元组(tuple),而是指123这个数了。这是由于括号 () 既可以表示元组(tuple),又可以表示数学公式中的小括号,这就产生了歧义。

          二、核心区别一览表

          特性 List(列表) Tuple(元组)
          可变性 可变 不可变
          语法 [1, 2, 3] (1, 2, 3)
          占用内存 较大 较小
          速度 较慢 较快
          是否可哈希
          适用场景 需要修改数据 不需要修改数据

          三、List和Tuple的高效用法

          1. List的高效操作

          • 批量添加元素

          my_list.extend([4, 5, 6])

          • 列表推导式

          squares = [x2 for x in range(10)]

          • 删除元素

          my_list.remove(2) 删除值为2的元素del my_list[0] 删除第一个元素

          • 常用函数&技巧

          函数&技巧 描述
          len(list) 列表元素个数
          max(list) 返回列表元素最大值
          min(list) 返回列表元素最小值
          list(seq) 将元组转换为列表
          list.append(obj) 在列表末尾添加新的对象
          list.count(obj) 统计某个元素在列表中出现的次数
          list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
          list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
          list.insert(index, obj) 将对象插入列表
          list.pop(obj=list[-1]) 移除列表中的一个元素(默认最终一个元素),并且返回该元素的值
          list.remove(obj) 移除列表中的一个元素(参数是列表中元素),并且不返回任何值
          list.reverse() 反向列表中元素
          list.sort([func]) 对原列表进行排序

          2. Tuple的隐藏优势

          • 作为字典的键

          my_dict = (‘x’, 1): ‘value1’, (‘y’, 2): ‘value2’}

          • 解包赋值

          a, b, c = (1, 2, 3)

          • 函数返回多个值

          def get_point(): return (3, 4)x, y = get_point()

          四、List和Tuple的性能对比

          Tuple的访问速度比List快!由于Tuple是不可变的,Python可以对其做更多优化。

          性能测试:

          import timeitprint(timeit.timeit(stmt=”[1,2,3,4,5]”, number=1000000))print(timeit.timeit(stmt=”(1,2,3,4,5)”, number=1000000))

          五、到底该用List还是Tuple?

          • 需要频繁修改数据? 用List!
          • 数据不会变,追求性能和安全? 用Tuple!
          • 要做字典的key? 只能用Tuple!

          六、你可能忽略的细节

          • 单元素Tuple要加逗号:(1,)
          • Tuple可以嵌套List,但List不能作为字典的key

          拓展资料

          到此这篇关于一文搞懂PythonList和Tuple的区别的文章就介绍到这了,更多相关PythonList和Tuple区别内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

          无论兄弟们可能感兴趣的文章:

          • Python中的list与tuple集合区别解析
          • 详谈Python中列表list,元祖tuple和numpy中的array区别
          • Python中内置数据类型list,tuple,dict,set的区别和用法
          • Python实现tuple和list的转换方式
          • 关于Python实现tuple和list的转换难题

          返回顶部