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

   

  

 

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




一、 元组(tuple)

  1. 元组的特点

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

  2.  格式

   python基础-3:元组、字典、深浅拷贝与自定义函数_第1张图片

  3.  可用参数

   wKiom1kO_HDjIaBCAAAVKT7AeLY483.gif

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

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

二、 字典(dictionary)

  1. 字典的特点

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

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

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

 2.  定义字典

   python基础-3:元组、字典、深浅拷贝与自定义函数_第2张图片

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

   python基础-3:元组、字典、深浅拷贝与自定义函数_第3张图片

三、 深浅复制

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

   wKioL1kO_NLQ8Fc4AAAPIhL7GqM667.png

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

      python基础-3:元组、字典、深浅拷贝与自定义函数_第4张图片

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

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

  1. 通过举例论证浅拷贝

   python基础-3:元组、字典、深浅拷贝与自定义函数_第5张图片

  2. 通过举例论证深拷贝

   python基础-3:元组、字典、深浅拷贝与自定义函数_第6张图片

二、 函数

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

   wKiom1kO_ZbQe91dAAAR1O3U_hk453.png

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

   wKioL1kO_abj7IqnAAANa11mSnI889.png

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

   wKiom1kO_bmRrZZ9AAAO9Rpt-bI484.png

  4. 定义一个空函数

   wKioL1kO_c3S63seAAASaOMzoIk631.png

  5. Return在函数中的作用

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

例:

没有return

   python基础-3:元组、字典、深浅拷贝与自定义函数_第7张图片

   有return

   python基础-3:元组、字典、深浅拷贝与自定义函数_第8张图片

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

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

   1) 可变参数

     

   2)关键字参数

    python基础-3:元组、字典、深浅拷贝与自定义函数_第9张图片

  7. 默认值

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

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

 python基础-3:元组、字典、深浅拷贝与自定义函数_第10张图片

  8. 其他使用方法

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

   python基础-3:元组、字典、深浅拷贝与自定义函数_第11张图片

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

python基础-3:元组、字典、深浅拷贝与自定义函数_第12张图片

  9. 递归函数

    python基础-3:元组、字典、深浅拷贝与自定义函数_第13张图片

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

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

  • 此例的计算过程如下: