可变对象与不可变对象

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

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

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

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

 

Python基础(3)_可变对象与不可变对象、列表、元祖和字典的更多相关文章

  1. Python基础数据类型(数字、字符串、布尔、列表、元组、字典、集合等)

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

  2. Python入门 [输出,注释,列表,元祖,集合,字典,if,while,for]

    print("Hello Python") #输出 ''' 多行注释 用 三个引号 ''' a=1 #赋值 变量首字母只能书字母下划线 第二个字符数字,字母,下划线 声明一个列表 ...

  3. Python基础之字符串,布尔值,整数,列表,元组,字典,集合

    一.str字符串 1.capitalize字符串首字母大写 name = "json" v = name.capitalize() print(v) # 输出结果:Json 2.c ...

  4. python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍

    对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # python3.x dir(int) # ['__a ...

  5. Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  6. 干货!Python中字符串、列表、元祖、字典,集合之间的转换

    一.字符串的转化 1.字符串转换成列表 字符串转换成list 的时候,str可以作为迭代对象,直接放入:也可以使用split对字符串进行切割.然后返回list s = '1a1b1c' print(l ...

  7. 第2章 Python基础-字符编码&数据类型 列表&元祖 练习题

    1.创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素 names = ["old_driver&q ...

  8. 《python基础教程(第二版)》学习笔记 列表/元组(第2章)

    <python基础教程(第二版)>学习笔记 列表/元组(第2章)序列中的下标从0开始x='ABC' ==> x[0]='A', x[1]='B', x[2]='C'负数索引从右边开始 ...

  9. Python学习day4 数据类型Ⅱ(列表,元祖)

    day4 知识补充&数据类型:列表,元祖 1.知识补充 1.编译型/解释型 编译型:在代码编写完成之后编译器将其变成另外一个文件教给你算计执行. 代表语言:Java,c,c++ ,c#, Go ...

  10. py基础2--列表,元祖,字典,集合,文件

    本节内容 列表.元祖操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 三元运算&生成式&成员运算&解压法&队列堆栈&数据类型转换 1. 列表操作 ...

随机推荐

  1. Maven-百度百科

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven 的缺省构建 ...

  2. 关于XSuperMES项目使用的PDF框架

    我在曾经的项目中使用的是pdfbox.在读取中文文档时能够读出大部分的文字,可是在数字.分页等地方还是不可避免的出现乱码. 于是我在网上搜索,看有没有什么解决方法.看到有说法: "PDFBo ...

  3. 【Linux】使用xshell登陆时密码框为灰色,无法输入密码

    使用xshell登陆时,出现以上情况,那么这到底值咋回事呢?经过查询以后发现是服务器端设置问题,解决办法如下: vi /etc/ssh/sshd_config 接着保存退出,然后重启sshd服务 se ...

  4. C# 反编译工具

    justdecompile http://down.51cto.com/data/2067031 ILSpy http://www.fishlee.net/soft/ilspy_chs/

  5. delphi的字节对齐

    如果不改编译选项Delphi的Record默认也是4字节对齐的. 可以用编译开关指定 {$A4+}就是4字节对齐.同理{$A2+}.{$A1+}等.{$A1+}等同于Packed Record 主要容 ...

  6. Android:使用ZXing生成二维码(支持加入Logo图案)

    ZXing是谷歌的一个开源库.能够用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing ...

  7. 远程桌面工具 TeamViewer

    在家里想远程公司的电脑 教程: http://jingyan.baidu.com/article/d169e186b38c37436611d8fa.html 下载地址: http://rj.baidu ...

  8. Windows安装Redis的php扩展

    Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射.它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不 ...

  9. const_cast去除const限制,同一片内存

    本质很简单,但一些优化 和 编程上的错误,却让人看不清本质. :const_cast<type_id> (expression) 该运算符用来修改类型的const或volatile属性.除 ...

  10. java使用命令wsimport构建WebService客户端

    wsimport -d d: -keep -extension -p com.demo.client http://192.168.33.3//RECEPTIONws.ASMX?WSDL 客户端:在J ...