可变类型
可变数据类型是指变量所指向的内存地址处的值是可以被改变的
-
集合
#集合 myset = {1, '2', '34', '5', 67} print(myset, type(myset), id(myset)) myset.add('999') print(myset, type(myset), id(myset))
-
列表
#列表 list = [1024, '程序员节', 1111, "资深程序员节"] print(list, type(list), id(list)) list.append('炫富就要炫机械键盘') print(list, type(list), id(list))
-
字典
#字典 mydict = {"姓名": "尹天仇", "职业": "演员", "出处": "喜剧之王"} print(mydict, type(mydict), id(mydict)) mydict["age"] = 32 print(mydict, type(mydict), id(mydict))
不可变类型
不可变类型的变量一经生成其中的元素不能被修改,只能被访问
-
数字类型: int、float 、complex
num = 1024 # 整型 flo = 12.24 # 浮点型 com = 1 + 2j # 复数类型
-
string
str1 = str() # 使用构造函数创建 str2 = str("abc") str3 = "" str4 = "abc"
-
元组
tuple1 = tuple((1, 2, 3, 4)) # 创建一个包含3个元素的元组对象 tuple2 = (1, 2, 3, 4) tuple3 = (100,) # 创建一个元素的元组时,必须要带有逗号
两者的特点
在Python中,一切皆为对象,一切皆为对象的引用 – 非常重要!!!
-
不可变类型: int, float, string, number, tuple
特点:不可变对象的内容没有发生改变,变的是:创建新的对象后,改变了变量对对象的引用
num = 1024 # 1024 num = 1024 + 10 # 1034实际上是另一个对象
-
可变类型:列表、字典、集合、自定义类型
可变对象的内容是可以变的
lst = [1, 2, 3] lst[2] = 4
元组和列表的区别
-
列表属于可变序列,元素可以随时修改或者删除;元组属于不可变序 列,元素是不能修改的,除非整体重新赋值
-
列表有多种方法实现添加和修改列表元素;元组中不允许添加或修改元素,同样也不能删除某个元素,除非使用del整体删除
-
列表可以使用切片方法访问和修改列表中的元素;元组也支持切片,但只能通过切片访问元组中的元素,不支持修改
-
元组比列表的访问和处理速度快,如果只需要对序列的元素进行访问,而不进行任何修改,建议使用元组
-
列表不能作为字典类型中的键,而元组是可以的