首页 > 技术文章 > Python复习知识点(二)

Tempt 2018-11-20 11:01 原文

  • 元组
    元组与列表类似,不同之处在于元组的元素不可修改
    元组使用小括号,列表使用方括号
    命名方式:
        普通命名:tup1=('哈哈' , '蛤蛤' , '嘿嘿')
                          tup2='abv', 'jinf' , '222',5        (不同括号也可以) 这里解释下,无关闭分割符,用逗号隔开 默认元组
        创建空元祖:
                           tup=();
        创建一个元素的时候:
                           tup=(50,)                (当元组元素只有一个的时候,这里要在元素后面加逗号)
    
        元组的可以下标访问,可以切片访问。也可以拼接
        元组的删除:删除单个元素不不允许的,但是删除整个元组是可以的
                              我们使用del来删除整个元组,删除之后,我们再去打印它就会报错,not define
        相关内置函数
方法 功能
cmp(tup1,tup2) 比较两个元组元素
len(tup1) 计算个数
max(tup),min(tup) 返回元组最大,最小值
tuple(seq) 将列表转元组

  • 字典
     这里解释下为什么说列表是有序的对象集合,所谓的有序体现在哪里?
      而为什么说字典是无序的对象集合,而无序在哪里体现?
      归根结底在于字典的元素是根据键来存取的,而不是通过偏移存取,(偏移指的是内存上的偏移,这里不过赘述),键本身是无序的,没有规律的
      字典用 { } 来标识,他是一个无序的 键 :值 对集合
      注意:键必须是不可变类型
      在同一个字典中,键必须是唯一的。创建空字典使用 { }  。这也就解释了为什么集合不能用{} 而要用set()

 

上面例子中,有dict[2],我们访问的并不是他的下标为2的键值,而是访问键为2的值,
                            这也就说明了我们不能通过下标去访问!,归根结底在于他是无序的。不能通过偏移存取
                            同理我们添加字典键的时候,不能用下标添加,总之下标访问机制在字典中不能用!
 特殊用法:

 

这里再来强调下两点:
        1.    键是不可重复出现两次,如果出现两次,前面的键则被覆盖
        2.    键本身是不可变得,经过上面的笔记,可以得出:键的存在可以用 数字,字符串,元组去充当,如果用列表就报错。例如:

 

 

 

对于上表。这里详细说下 浅拷贝,深拷贝,和赋值:

 

解释下:
                            1.    赋值就是将这个对象的引用传入进去,这个对象怎么变化,被赋值的对象也会随之变化
                            2.    浅拷贝如上图所示,虽然是拷贝过来但是他只深度拷贝了原来对象的普通元素,
                                   但是其中的子对象没有拷贝,两个对象中的子对象还是指向同一块内存,原来对象中其他元素怎么变化都不会影响 浅拷贝对象,
                                   但是原来对象如果有子对象,且子对象发生了变化,这时候浅拷贝对象就会发送变化    (代码更好理解 :)
                            3.    而深拷贝就最好理解,完全拷贝了父对象以及子对象,两者完全独立

 

 

 
 
 

推荐阅读