Python学习day7_使用元组

申明:本文为练习python使用,跟随GitHub上jackfrued的python-100-Days,边学边练

链接:https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/07.%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8C%E5%B8%B8%E7%94%A8%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md

Python 的元组与列表类似,不同之处在于元组的元素不能修改,在前面的代码中我们已经不止一次使用过元组了。顾名思义,我们把多个元素组合到一起就形成了一个元组,所以它和列表一样可以保存多条数据。下面的代码演示了如何定义和使用元组。

def main():
	#定义元组
	information = ('杨过',100,'male','China',True)
	print(information)
	#获取元组中的元素
	print(information[0])
	#遍历元组中的值
	for member in information:
		print(member)
	#将元组转换为列表
	person = list(information)
	print(person)
	#列表是可以修改它的元素的
	person[0]='独孤求败'
	person[1]=25
	print(person)
	#将列表转换为元组
	fruits_list = ['apple','banana','orange']
	fruits_tuple =tuple(fruits_list)
	print(fruits_tuple)


if __name__ == '__main__':
	main()

运行结果如下:

注意:元组中的元素无法修改,比如想改变如下元组的t[0],实际会报错

def main():
	t=('dog','cat','pig')
	print(t)
	t[0]='signal dog'
	print(t)

if __name__ == '__main__':
	main()

这里有一个非常值得探讨的问题,我们已经有了列表这种数据结构,为什么还需要元组这样的类型呢?

  1. 元组中的元素是无法修改的,事实上我们在项目中尤其是多线程环境(后面会讲到)中可能更喜欢使用的是那些不变对象(一方面因为对象状态不能修改,所以可以避免由此引起的不必要的程序错误,简单的说就是一个不变的对象要比可变的对象更加容易维护;另一方面因为没有任何一个线程能够修改不变对象的内部状态,一个不变对象自动就是线程安全的,这样就可以省掉处理同步化的开销。一个不变对象可以方便的被共享访问)。所以结论就是:如果不需要对元素进行添加、删除、修改的时候,可以考虑使用元组,当然如果一个方法要返回多个值,使用元组也是不错的选择。
  2. 元组在创建时间和占用的空间上面都优于列表。我们可以使用sys模块的getsizeof函数来检查存储同样的元素的元组和列表各自占用了多少内存空间,这个很容易做到。我们也可以在ipython中使用魔法指令%timeit来分析创建同样内容的元组和列表所花费的时间,如下所示
    from sys import getsizeof
    list1=[1,2,3,4,5]
    print('列表占用字节:',getsizeof(list1))
    tuple1=(1,2,3,4,5)
    print('元组占用字节:',getsizeof(tuple1))

    运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值