• 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

     

  • 相关阅读:
    关于HTML(七)--------HTML废弃的标签
    关于HTML(六)--------canvas
    抓包神器之Charles,常用功能都在这里了(转自https://blog.csdn.net/mxw2552261/article/details/78645118)
    混合开发的坑(7) ---输入文本时,键盘遮挡
    关于HTML(五)---------meta标签
    关于HTML(四)---------使用data-的好处
    关于HTML(三)---------xhtml和html的区别
    关于HTML(二)---------浏览器的标准模式和怪异模式
    关于HTML(一)---------HTML5新特性2
    关于HTML(一)---------HTML5新特性1
  • 原文地址:https://www.cnblogs.com/hedeyong/p/6963670.html
Copyright © 2020-2023  润新知