我们知道元组tuple是 Immutable (不可修改)的,而数组List是可变的,而且元组有的功能它都有,而且功能更多,应用更广,那为什么还要保留元组呢?
假设你有几个关键词比如:CAR, AIRPLANE, BOAT. 如果它是数组,要在多个对象之间进行共享,数组无法避免它在共享的时候被无意地更改,如果说这三个关键词直接和数据库中某个字段做映射,这种更改则非常危险,小则导致垃圾数据的产生,大则导致某些功能出现缺陷。
元组的好处之一就在于这里,一旦三个关键词被设定为元组,则再也无法更改。非常适合用于固定关键词在对象之间的共享。
我们可以做一些性能测试:
创建
>>>import timeit
>>>print(timeit.timeit('["CAR", "AIRPLANE", "BOAT"]'))
0.0508033999999995
>>>print(timeit.timeit('("CAR", "AIRPLANE", "BOAT")'))
0.013855500000001797
可以看到,元组的创建速度仅是数组的四分之一。
空间
>>> a_tuple =("CAR","AIRPLANE","BOAT")
>>> b_list =["CAR","AIRPLANE","BOAT"]
>>>from sys import getsizeof
>>> getsizeof(a_tuple)
72
>>> getsizeof(b_list)
88
可以看到,元组比数组少占用一些空间。
其实Python的函数多返回值就是用tuple实现的。我们知道tuple有两种定义方式,一种是不带括号的,一种是带括号的:
my_tuple ="CAR","AIRPLANE","BOAT"
my_tuple2 =("CAR","AIRPLANE","BOAT")
print(type(my_tuple))#
print(type(my_tuple2))#
而函数使用多返回值的时候是用逗号分隔开的,这是上述的元组第一种创建形式,因此,函数多返回值实际上返回的是一个元组。
全部0条评论
快来发表一下你的评论吧 !