最近有同学分享在面试中,被问到一个问题:
列表和元组的区别是什么?
问题本身并不复杂,有意思的是,这位同学在对方的反复逼问下,对自己的回答动摇了。
既然如此,我们不如借着这个机会,再深入的聊一聊元组和列表,把心中的疑惑搞搞清楚。
在深入之前我觉得首选应该回顾Python的设计理念,它将我们为思考Python带来指引,这里摘录2条:
- 尽量找一种,最好是唯一一种明显的解决方案
- Python中一切皆对象
1. 列表和元组有什么区别
按照知乎的传统,“要先问是不是,再问为什么”,所以第一部分我们先来看看列表和元组有没有区别。
在Python中一切皆对象
所以我们将“元组”和“列表”这两个对象放在一起毕竟,看看有什么不同
diff = set(dir(tuple())) - set(dir(list()))
print(diff) # 元组有,但列表没有的成员
diff = set(dir(list())) - set(dir(tuple()))
print(diff) # 列表有,但元组没有成员
输出结果
{'__getnewargs__'}
{'c