可变对象与不可变对象

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

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

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

  #在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

 

最新文章

  1. 比achartengine更加强大的Android图表控件。
  2. 基于stm32f4的ucGUI通过外部flash存储汉字库显示任意英文字符和汉字组合(控件可用)
  3. 《ASP.NET MVC 5框架揭秘》样章发布
  4. postgresql+slony-i安装配置主从
  5. 轻轻送送为你的App加点特效
  6. 一分钟可知css3版大白源码
  7. oracle 11g rac 无法自动启动
  8. H - Parity game-poj1733(需要离散化)
  9. Android读取网络图片
  10. leetcode第36题--Sudoku Solver
  11. Easyui _treegrid 动态加载子节点
  12. Java中equals和==之间的区别
  13. Linux 版本svn安装
  14. mac环境破解navicat premium 12.1
  15. Linux系统调用:进程的终止
  16. SpringBoot系列: Java应用程序传参和SpringBoot参数文件
  17. 这些linux技巧大大提高你的工作效率
  18. android--Activity有返回值的跳转
  19. 检测2个公网IP的GRE隧道是否通的方法,使用PPTP拨号检测。
  20. 【UVA】1594 Ducci Sequence(纯模拟)

热门文章

  1. foreach和volist的区别
  2. WebService学习小结
  3. PICT工具安装使用
  4. 记录:Android中StackOverflow的问题
  5. struts2中怎样处理404?
  6. Windows App开发之编辑文本与绘制图形
  7. Squid 启动/停止/重载配置文件 命令
  8. MySQL:ERROR 1067 (42000): Invalid default value for 'end_time'
  9. CSRF介绍与应对以及Java代码示例
  10. HDFS源码分析数据块校验之DataBlockScanner