案例解析
我们在创建元组时,按正常来说是不可以被修改的,如下所示:
i=('hello world',520,[1314])
i[1]=888
print(i)
可以看到输出结果报错,如下
但是,当我做以下更改时,发现元组中的列表可以修改元素的
i=('hello world',520,[1314])
i[2][0]=2
print(i)
#输出结果
('hello world', 520, [2])
i=('hello world',520,[1314])
i[2].append(4)
print(i)
#输出结果
('hello world', 520, [1314, 4])
也发现元组中的字典可以修改,这里用的是引用
i=('hello world',520,[1314],{'name':'zhangsan','age':'18'})
x=i[3]
x['hobby']='games'
print(i)
#输出结果
('hello world', 520, [1314], {'name': 'zhangsan', 'age': '18', 'hobby': 'games'})
那么元组中的字符串是否可被修改呢
i=('hello world',520,[1314],{'name':'zhangsan','age':'18'})
i[0]='hello'
print(i)
可以看到直接报错,无法进行修改
总结
元组是一种序列,它支持序列的基本操作,包括索引、切片、序列加、序列乘、in、len()、max()、min()。元组不可修改,指的是元组中每个元素的指向永远不变。
元组和列表的区别
① 第一个不同点是元组的声明使用小括号
,而列表使用方括号
,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;
② 第二个不同点是元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。
用于列表的排序、替换、添加等方法也不适用于元组,适用于元组的主要运算有元组的合并、遍历、求元组的最大值和最小值等操作方法。
所以说元组的元素不能被修改,但是元组的元素的元素如果是可被修改的,那元组的元素的元素就可以被修改。
通俗一点来说就是,上面元组中的字符串、int数字、或者有集合时,他们本身是不可被修改的,所有不支持对他们做改变,但是列表和字典本身是可修改的,所以我们能对元组中的列表和字典做操作。