Python基础(3)_可变对象与不可变对象、列表、元祖和字典

可变对象与不可变对象

  实例被创建后,身份和类型是不可变的,

  如果值是不可以被修改的,则是不可变对象  

  如果值是可以被修改的,则是可变对象

  #在id不动,type也不动,value被修改了,则称为可变

  #可变指的是:在id和type不动的前提下,值可变

对象的属性和方法

属性就是对象的值,方法就是调用时将在对象本身上执行某些操作的函数,使用.运算符可以访问对象的属性和方法,如
a=3+4j
a.real

b=[1,2,3]
b.append(4)

7 身份比较,类型比较,值比较
x=1
y=1
x 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)

分类:

 

 

Python中对象的赋值都是进行对象引用(内存地址)传递
使用copy.copy(),可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用原始的引用.
如果需要复制一个容器对象,以及它里面的所有元素(包含元素的子元素),可以使用copy.deepcopy()进行深拷贝
对于非容器类型(如数字、字符串、和其他’原子’类型的对象)没有被拷贝一说
如果元祖变量只包含原子类型对象,则不能深拷贝,看下面的例子

 

一、列表

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
特性
  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

 

原文地址:https://www.cnblogs.com/hedeyong/p/6963670.html