列表与元组小结

1.列表与元组的相似之处

a. 列表与元组都是可以用于储存不同的数据类型有序集合
li = ['cdsc',1245,'dsd',5678]          ## 列表

tup = ('sxsc',12345,'sds',78)       ##  元组


2. 列表与元组的不同之处

a. 列表是动态的,长度可变,可以对列表进行删除、改变、添加元素
b. 元组是静态的,长度大小固定,无法增加删减或者改变

3. 列表与元组的存储关系

a. 元组是静态的,一旦确定元组的大小就不可以进行更改,基于元组的这条特性,元组的存储大小一开始就已经确定。
b. 列表是动态的,列表的大小一般会比本身存储的元素的总字节大,因为动态的特性导致了列表中存储了一个指向当前元素的指针,该指针会占用一定的存储空间。动态的特性也会导致列表分配的空间会比当前存储的字节数大。

4. 列表与元组的嵌套

a. 列表嵌套列表,其中的每一个元素都是可变的,相当于二维指针
b. 列表嵌套元组,列表中的元素可变,但是元组元素不可变

输入:
	lie = [(1,2,3),(4,5,6),78,'4551']
	lie[0] = (1245,45678)
	lie
输出:
	[(1245, 45678), (4, 5, 6), 78, '4551']
*************************************************

输入:
	lie = [(1,2,3),(4,5,6),78,'4551']
	lie[0][0] = 23
	lie
输出:
	TypeError: 'tuple' object does not support item assignment
c. 元组嵌套列表,导致一个元组成为“可变”元组。
输入:
	tup =([12,34,56],[78,96],78,'sdsd')
	tup[0] = [1234,5678]
	tup
输出:
	TypeError: 'tuple' object does not support item assignment
********************************************************************************

输入:
	tup =([12,34,56],[78,96],78,'sdsd')
	tup[0][0]= 124578
	tup[0][1]= 369874
	tup

输出:
	([124578, 369874, 56], [78, 96], 78, 'sdsd')
d. 元组嵌套元组,其中的每一个数据都是不可变的

思考?

创建一个空列表,使用下面的两种方式,哪一个效率更好?

方式一:

empty_list = list()  

方式二:

empty_list = []

答案:

方式一是调用函数创建空列表,会出现其他的一系列栈的分配操作
方式二直接调用,[ ] 是一个内置的c函数,更优。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值