一文搞懂Python 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) 占用内存 较大 较小 速度 较慢 较快 是否可哈希 否 是 适用场景 需要修改数据 不需要修改数据
  • Tuple的访问速度比List快!因为Tuple是不可变的,Python可以对其做更多优化。 性能测试: import timeit print(timeit.timeit(stmt=”[1,2,3,4,5]”, number=1000000)) print(timeit.timeit(stmt=”(1,2,3,4,5)”, number=1000000))
  • 需要频繁修改数据? 用List! 数据不会变,追求性能和安全? 用Tuple! 要做字典的key? 只能用Tuple!
  • 单元素Tuple要加逗号:(1,) Tuple可以嵌套List,但List不能作为字典的key
  • 到此这篇关于一文搞懂Python List和Tuple的区别的文章就介绍到这了,更多相关Python List和Tuple区别内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python中的list与tuple集合区别解析 详谈Python中列表list,元祖tuple和numpy中的array区别 Python中内置数据类型list,tuple,dict,set的区别和用法 Python实现tuple和list的转换方式 关于Python 实现tuple和list的转换问题
  • 目录
    • 一、List和Tuple的基本概念
    • 二、核心区别一览表
    • 三、List和Tuple的高效用法
      • 1. List的高效操作
      • 2. 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)
            占用内存 较大 较小
            速度 较慢 较快
            是否可哈希
            适用场景 需要修改数据 不需要修改数据

            • 批量添加元素
            my_list.extend([4, 5, 6])
            
            • 列表推导式
            squares = [x**2 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]) 对原列表进行排序

            • 作为字典的键
            my_dict = {('x', 1): 'value1', ('y', 2): 'value2'}
            
            • 解包赋值
            a, b, c = (1, 2, 3)
            
            • 函数返回多个值
            def get_point():
                return (3, 4)
            x, y = get_point()
            

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

            性能测试:

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

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

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

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

            您可能感兴趣的文章:

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

            站内搜索