前言
python面试有一道很基础的问题:list(列表)和tuple(元组)有什么不同?基本上只要背过题库的同学都知道,list(里面的元素)是可变的,tuple(里面的元素)是不可变的。
我们尝试在python解释器中改变tuple的元素(赋另一个值),会有以下的表现:
1 | def tuple_check(): |
可以看到赋值操作报错,tuple不支持再次赋值,体现了其“不可变”的特性。
但是,不支持赋值/不可变的原因,到底是什么呢?不是说不支持就不支持吧!难道也没有支持的可能?
这个问题要给出清晰的答案可并不容易,如果你直接检索网上资料的话,会发现很多文章都在说重复的话,没有什么深入的挖掘,导致这个问题无从解释。于是,今天这篇文章,就给大家把这个问题讲的干脆一点。
以及,看完这篇文章之后,网上那些车轱辘话大家也就没有必要再看了。