在前面的文章中我们一起学习了列表、元祖、字典、集合的定义以及相关常见的操作方法!但是学到这里脑中往往有些凌乱,所以花些时间梳理一下还是不错的!
1 列表、元祖、字典与集合的差异
1.1 可变数据类型与不可变数据类型
- 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
- 可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
**总结:**不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变
示例:
元组被称为只读列表,即数据可以被查询,但不能被修改,但是我们可以在元组的元素中存放一个列表,通过更改列表的值来查看元组是属于可变还是不可变。
c1 = ['1','2'] c = (1,2,c1) print(c,id(c),type(c)) c1[1] = 'djx' print(c,id(c),type(c)) result: (1, 2, ['1', '2']) 386030735432 <class 'tuple'> (1, 2, ['1', 'djx']) 386030735432 <class 'tuple'>
虽然元组数据发生改变,但是内存地址没有发生了改变,但是我们不可以以此来判定元组就是可变数据类型。我们回头仔细想想元组的定义就是不可变的。我们修改了元组中列表的值,但是因为列表是可变数据类型,所以虽然在列表中更改了值,但是列表的地址没有改变,列表在元组中的地址的值没有改变,所以也就意味着元组没有发生变化。我们就可以认为元组是不可变数据类型,因为元组是不可变的。
2 数据序列中的公共操作
2.1 运算符
*示例:
# 1. 字符串 print('-' * 10) # ---------- # 2. 列表 list1 = ['hello'] print(list1 * 4) # ['hello', 'hello', 'hello', 'hello'] # 3. 元组 t1 = ('world',) print(t1 * 4) # ('world', 'world', 'world', 'world')
2.2 公共方法
2.3 类型转换