来自阿里的一道Python面试题:有了列表为什么还要元组?

本文探讨了Python中列表和元组的区别及其意义,包括元组的不可变性带来的效率优势、可哈希性质在字典中的作用以及编码风格的考量。元组的存在并非多余,它在数据打包、传输和特定场景下提供了列表无法替代的功能。
摘要由CSDN通过智能技术生成

最近有同学分享在面试中,被问到一个问题:

列表和元组的区别是什么?

在这里插入图片描述

问题本身并不复杂,有意思的是,这位同学在对方的反复逼问下,对自己的回答动摇了。
既然如此,我们不如借着这个机会,再深入的聊一聊元组和列表,把心中的疑惑搞搞清楚。
在深入之前我觉得首选应该回顾Python的设计理念,它将我们为思考Python带来指引,这里摘录2条:

  1. 尽量找一种,最好是唯一一种明显的解决方案
  2. Python中一切皆对象

1. 列表和元组有什么区别

按照知乎的传统,“要先问是不是,再问为什么”,所以第一部分我们先来看看列表和元组有没有区别。

在Python中一切皆对象

所以我们将“元组”和“列表”这两个对象放在一起毕竟,看看有什么不同

diff = set(dir(tuple())) - set(dir(list())) 
print(diff) # 元组有,但列表没有的成员 

diff = set(dir(list())) - set(dir(tuple())) 
print(diff) # 列表有,但元组没有成员

输出结果

{'__getnewargs__'} 
{'c
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值