python基础-3:元组、字典、深浅拷

发布时间:2019-08-24 09:33:25编辑:auto阅读(1182)


       小生博客:http://xsboke.blog.51cto.com

       

      

     

                                 -------谢谢您的参考,如有疑问,欢迎交流




    一、 元组(tuple)

      1. 元组的特点

    • 元组是固定的,不能修改也不能增减、因为元组不可变,所以更安全,如果可以,尽量不使用list而使用tuple

      2.  格式

       wKioL1kO_GaxlEf1AAAYyTQNH_k539.gif

      3.  可用参数

       wKiom1kO_HDjIaBCAAAVKT7AeLY483.gif

      4.  元组的结构(以元组a为例)

    当创建一个元组a时,将在内存中开辟一个名为a的内存,然后每个索引位置为一个命名空间,每个命名空间都有一个存储,而真实的数据就存在这个存储中,元组的不可变性,就是这个索引(命名空间)不可变

    二、 字典(dictionary)

      1. 字典的特点

    • Python内置字典,英文:dictionary也叫,map

    • 字典使用键-值(key-value)这种格式进行存储

    • 字典为无序,查询的时候将通过key的hash查找值

     2.  定义字典

       wKiom1kO_IDT6iu6AAAoOz7wvPA213.gif

      3.  字典方法(以字典a为例)

       wKiom1kO_I-j-ImcAACOK0__oEQ285.gif

    三、 深浅复制

       首先我们看一下字典,元祖、序列的结构

       wKioL1kO_NLQ8Fc4AAAPIhL7GqM667.png

       例:下面举个例子,可以让你更清晰的看懂这张图

          wKiom1kO_N-BqT7TAAB3MSePCNw362.png

    • 明明list中有7个数字,为什么统计元素的时候只有5个元素呢?

    • 那是因为这个序列一共有2层数据,而使用len统计元素时,只统计第一层的元素个数

      1. 通过举例论证浅拷贝

       wKiom1kO_XGRw6j6AAElcr7pKHU778.jpg

      2. 通过举例论证深拷贝

       wKioL1kO_YOg0tORAAFtlwSGX6Y730.jpg

    二、 函数

      1. 定义函数(多个参数用逗号分隔)

       wKiom1kO_ZbQe91dAAAR1O3U_hk453.png

      2. 输出函数(多个参数用逗号分隔)

       wKioL1kO_abj7IqnAAANa11mSnI889.png

      3. 调用函数(多个参数用逗号分隔)

       wKiom1kO_bmRrZZ9AAAO9Rpt-bI484.png

      4. 定义一个空函数

       wKioL1kO_c3S63seAAASaOMzoIk631.png

      5. Return在函数中的作用

    停止当前语句,并将指定值赋予给调用函数的变量名

    例:

    没有return

       wKioL1kO_fSxsgmuAABNmniDNd4097.png

       有return

       wKiom1kO_geA2O3rAACtgCoZMnY414.jpg

      6. 星号:“*”,在函数中的应用

    如果形式参数中同时存在可变参数和关键字参数,那么,可变参数必须在关键字参数前面,否则会提示语法错误

       1) 可变参数

         wKiom1kO_kqyl9zrAABmFnPGg6I961.png

       2)关键字参数

        wKioL1kO_mDC0WWRAAH7IQkM43Q588.jpg

      7. 默认值

    • 当形式参数没有默认值时,输入的实际参数数量和形式参数必须相同。

    • 定义形式参数中默认值时,带有默认值的形式参数,不能定义在没有默认值的形式参数前面

     wKioL1kO_p-DSCwJAAB6vn32Lpc204.png

      8. 其他使用方法

    实际参数默认与形式参数的顺序相同,如果想实际参数的输入顺序与形式参数的顺序不同,则在定义实际参数时,需要指定这个实际参数是属于哪个形式参数的

       wKioL1kO_1vS6RnoAAAgT0jvVDo351.png

    如果想在实际参数中使用已经定义好的元组,则需要在序列名前加一个星号“*”,如果是字典则需要加两个星号“**

    wKiom1kPAK2wK-mkAAArsPIwkmA389.png

      9. 递归函数

        wKiom1kPAEbxAN-VAAAfAix0xWA798.png

    • 定义一个函数,如果判断输入的实际参数等于1则直接输出;

    • 如果不等于1,则使用输入的实际参数乘以实际的参数减一,直到实际参数等于一为止。

    • 此例的计算过程如下:

          wKioL1kPAFPA3S6WAAANgDKIKog951.png



关键字