小议list,tuple,dict,set对象的可变性

来源:互联网 发布:胡适知乎 编辑:程序博客网 时间:2024/05/22 02:12

Python中数据结构list,tuple,dict,set等类型是我们定义、调用对象的基石,因其对象的可变性我们灵活选择使用哪一种数据结构。今天我们来小议一下可变对象与不可变对象在互相嵌套时候会发生什么“化学反应”。




# tuple是不可变对象,那么其是否可以存储可变对象呢?


显然,list、tuple、set均可以作为tuple的元素,其中list为可变对象。那么我们现在来改变list元素试一试,看tuple会有什么变化。


由此可知,tuple作为不可变对象,我们同时可以在里面放置可变对象。我们可以充分利用这一点来实现tuple的元素可更改,达到自己的使用数据的目的。


# set的性质是否如tuple一样呢?


set不能以list为元素,甚至也不能以set为元素。



但是set可以储存tuple,既然tuple可以以list为元素,我们放置含有list元素的tuple进set试一试:


显然不行,T已经作为s的元素,我们甚至不能更改T的内容,直接报错。我们自己可以试一试,先另外定义一个含有list的tuple,然后再实验。

所以我们得出结论set内的元素绝对不容可变元素。


以上是自己的一些考虑,大家批评指正,同样可以多动手,把数据类型玩弄得更熟练一些。

原创粉丝点击