python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python List和Tuple区别

一文搞懂Python List和Tuple的区别

作者:烛阴

list和tuple都是可迭代对象中的容器序列,能够存放不同类型的数据,并且存的是它们所包含的任意类型的对象的引用,这算是两者之间的一个相同点,本文详细给大家介绍了Python List和Tuple的区别,需要的朋友可以参考下

一、List和Tuple的基本概念

示例代码:

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

二、核心区别一览表

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

三、List和Tuple的高效用法

1. List的高效操作

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])对原列表进行排序

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 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?

六、你可能忽略的细节

总结

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

您可能感兴趣的文章:
阅读全文