可变对象与不可变对象
实例被创建后,身份和类型是不可变的,
如果值是不可以被修改的,则是不可变对象
如果值是可以被修改的,则是可变对象
#在id不动,type也不动,value被修改了,则称为可变
#可变指的是:在id和type不动的前提下,值可变
对象的属性和方法
属性就是对象的值,方法就是调用时将在对象本身上执行某些操作的函数,使用.运算符可以访问对象的属性和方法,如a=3+4ja.real b=[1,2,3]b.append(4) 7 身份比较,类型比较,值比较x=1y=1x is y #x与y是同一个对象,is比较的是id,即身份type(x) is type(y) #对象的类型本身也是一个对象,所以可以用is比较两个对象的类型的身份x == y #==比较的是两个对象的值是否相等
变量的赋值操作
- 链式赋值:y=x=a=1
- 多元赋值:x,y=1,2 x,y=y,x
- 增量赋值:x+=1
不依赖索引的取值,迭代方式取值
t=(1,2,3)
for i in t:
print(i)
分类:
一、列表
定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
列表创建
list_test=[’lhf‘,12,‘ok‘]或list_test=list(‘abc‘)或list_test=list([’lhf‘,12,‘ok‘])1
列表常见操作函数:
print(l[0]) #列表取值
len(l) #计算列表长度
l[1:3] #切片 注:切片是读操作,并不会修改原来的数据
append() #追加 ,默认追加的元素在最右
l.append(‘alex‘) #向列表l中追加元素‘alex’,加在最右
insert() #插入,使用时需指定插入位置
l.insert(0,‘alex‘) #向列表l的第一个索引位置追加元素‘alex’
pop() #删除,默认删除最后一项,即最右边元素,可指定位置
l.pop(0) #删除列表第一个元素
print(l.pop(0)) #输出打印刚刚删除的元素
in #包含
‘alex‘ in list #判断元素‘alex’是否在列表中,返回值为True或者False
列表的其他操作
index() #查看某一元素的索引号,查不到报错
extend() #扩展列表
l.extend([1,2,3]) #将列表[1,2,3]追加到列表l,合并为一个列表,
remove() #删除元素,默认从头删(即从左边删)
l.remove(‘a2‘) #指定元素删除
sort() #排序,从小到大排序,无返回值
reverse() #反转操作,无比较[1,2,3,4]>>[4,3,2,1]
二、元组
定义:与列表类似,只不过[]改成()特性:1.可存放多个值,元组的元素可以是任意数据类型2.不可变3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序
元组创建
ages = (11, 22, 33, 44, 55)或t = tuple((11, 22, 33, 44, 55))
元祖常见操作函数:与列表类似
t=(‘a‘,‘b‘,1,(3,4))
print(t[4][0]) #取值
print(t[1:3]) #切片
print(len(t)) #长度
print(‘a‘ in t) #包含,返回值True或者Fales
三、字典
定义:{key1:value1,key2:value2},key-value结构,key必须是不可变类型,或者可hash 基本形式:key:value特性:
1.可存放多个值2.可修改指定key对应的值,可变3.无序
字典常见操作函数:
print() #字典的取值是无序的