浅copy只copy一层

深copy相当于克隆一份

深copy要引入copy,具体如下:

import copy

wife = copy.copy()  #此为浅copy,括号中要加copy的对象,相当于xx.copy()

xiaosan = copy.deepcopy()  #此为深copy,括号内为要copy的对象

集合(set)

集合(set):把不同的元素组在一起形成集合,是python基本的数据类型。

集合元素:组成集合的成员(不可重复)

创建列表两种方式:

a = [ 1,3,4 ]

b = list( [1,3,4] )  #最里面一个括号是小括号,中括号,大括号都行,只要里面是个序列就行

创建元组的两种方式:

a = (1,3,4)

b = tuple( [1,3,4] )

set只有一种创建方式:

s = set('alex li')

s = frozenset('alex li')

set是无序的,无序意味着没有索引且不能做切片操作,字典虽然也是无序的,但是可以通过键来取值,那怎么取,两种方法:for遍历;迭代器;可以使用in、not in来访问或判断集合元素

set两大特点:无序、唯一

可哈希可以理解为不可变类型

集合对象(集合中的每一个元素)是一组无序排列的可哈希的值:集合成员可以做字典的键(? 因为成员必须是可哈希的,也就是不可变类型,所以可以做字典的键)

集合分类:可变集合(set)、不可变集合(frozenset)

可变集合:可添加和删除元素,非可哈希,不能用作字典的键,也不能做其它集合的元素

集合内置方法:

s.add('uu')  #添加一个元素

s.update('ops')  #将括号中的对象当成一个序列,将序列中的每个元素分别添加到集合

s.update( [12,'eee'] )  #update添加多少元素

s.remove('alex')  #删除括号内指定元素

s.pop()  #随机删除一个元素

s.clear()  #清空集合中所有元素,由于没有自己的表达形式,所以返回set()

del s  #删除集合

集合类型操作符

1、in , not in

2、集合等价与不等价(= , != )  #set('alex') == set('alexexex')

3、子集、超集  # set('alex’).issuperset('alexw')  或  set('alex') > set('alexw')  /  a.issubset(b)  或  a < b

4、交集  # a.intersection(b)  或  a & b

5、并集  # a.union(b)  或 a | b

6、差集  # a.difference(b)  或  a - b  /  b.difference(a)  或  b - a

7、对称差集(反向交集)     # a.symmetric_difference(b)  或  a ^ b

函数作用:

1、减少重复代码

2、方便修改,更易扩展

3、保持代码一致性

创建函数:

def 函数名字():

  函数体

调用函数:

函数名字()  #调用一定记得加括号

函数命名规则:和变量命名规则一样

函数的参数:函数参数放的位置是有讲究的,必须参数放最左边,然后默认参数,无命名不定长参数,有命名不定长参数

1、必需参数:必需参数须以正确的顺序传入函数,调用时的数量必须和声明的一样

2、关键字参数

3、默认参数

4、不定长参数

def print_info(name,age):
print('Name:%s'%name)
print('Age:%d'%age) print_info('xiaohu',30) #必需参数
print_info(age=30,name='xiaohu') #关键字参数
def print_info(name,age,sex='male'):    #默认参数
print('Name:%s'%name)
print('Age:%d'%age)
print('Sex:%s'%sex) print_info('xiaohu',28)
def add(*args):     #无命名不定长参数
print(args) #args是一个元组
sum = 0
for i in args:
sum += i
print(sum)
add(1,2,3,4) def print_info(**kwargs): #有命名不定长参数
for i in kwargs: #kwargs是一个字典
print('%s:%s'%(i,kwargs[i]))
print_info(job='IT',hobby='girls',heighit=188) #注意括号中的是键值对,但是用的是等号,而不是字典的冒号 def f(*args,**kwargs): #无命名必须要放左面,有命名必须要放右面,在输入实参的时候也要按照这个顺序,如果有默认参数,要放在不定长参数的左边
pass

return:

作用:

1、结束一个函数

2、返回某个值

注意点:

1、函数里如果没有return,会默认返回一个None

2、如果return多个对象,那么python会帮我们把多个对象封装成一个元组返回

作用域:

LEGB:L = local    E = encolsing    G = global   B = built in

1、变量查找顺序:LEGB,作用域局部》外层作用域》当前模块中的全局》python内置作用域

2、只有模块、类、及函数才能引入新作用域

3、对于一个变量,内部作用域先声明就会覆盖外部变量,不声明直接使用,就会使用外部作用域的变量

4、内部作用域要修改域变量的值时,全局变量要使用global关键字嵌套作用域变量要使用nonlocal关键字,nonlocal是python3新增的关键字,有了这个关键字,就能完美的实现闭包了。

Python:Day14 集合、函数的更多相关文章

  1. python中的函数

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  2. python高级之函数

    python高级之函数 本节内容 函数的介绍 函数的创建 函数参数及返回值 LEGB作用域 特殊函数 函数式编程 1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没有函数的话,那么将会出现很多 ...

  3. python内置函数

    python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...

  4. python 内置函数和函数装饰器

    python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...

  5. Python基础篇【第2篇】: Python内置函数(一)

    Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...

  6. 第一篇:python高级之函数

    python高级之函数   python高级之函数 本节内容 函数的介绍 函数的创建 函数参数及返回值 LEGB作用域 特殊函数 函数式编程 1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没 ...

  7. Python的集合

    1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...

  8. Python中集合set()的使用及处理

    在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...

  9. Python 内置函数笔记

    其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...

  10. Python全栈开发之路 【第四篇】:Python基础之函数

    本节内容 函数def: 1.位置参数,默认参数 2.位置参数,关键参数 3.如果参数中出现 *users,传递的参数就可以不再是固定的个数, 传过来的所有元素进行打包成元组 *args,**kwarg ...

随机推荐

  1. 远程过程调用概述-RMI简介

    简介: RPC是远程过程调用(Remote Procedure Call)的缩写形式.SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标 ...

  2. elementUI vue table 操作选项中弹出框确定dialog

    1.html <el-table-column label="操作" width="150" fixed="right" align= ...

  3. MySQL 慢查询日志配置与简析

    MySQL慢查询日志配置与简析 By:授客 QQ:1033553122   <1> 查看是否开启慢查询日志 SHOW VARIABLES LIKE 'slow%'; 说明: a. 如果sl ...

  4. (后端)Spring Boot自定义错误页面,Whitelabel Error Page处理方式(转)

    我已经是Spring Framework框架的忠实粉丝.对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题.但是,它构建的J2EE项目变得比较臃肿,需要被一 ...

  5. mysql之用户权限管理

    本文内容: 什么是用户权限 恰当的用户权限 查看权限 修改权限 删除权限 首发日期:2018-04-19 什么是用户权限: 每个用户都有自己的用户权限,这些用户权限比如有查询表权限.修改表权限.插入表 ...

  6. Java:JavaBean和BeanUtils

    本文内容: 什么是JavaBean JavaBean的使用 BeanUitls 利用DBUtils从数据库中自动加载数据到javabean对象中 首发日期:2018-07-21 什么是JavaBean ...

  7. PHP 生成器语法

    一般你在迭代一组数据的时候,需要创建一个数据,假设数组很大,则会消耗很大性能,甚至造成内存不足. //Fatal error: Allowed memory size of 1073741824 by ...

  8. @Autowired注解与@resource注解的区别(十分详细)

    背景: 今天下班路上看到一个大货车,于是想到了装配,然后脑海里跳出了一个注解@Autowired(自动装配),于是又想到最近工作项目用的都是@Resource注解来进行装配.于是本着学什么东西都要一钻 ...

  9. Java中数组、List、Set互相转换

    数组转List String[] staffs = new String[]{"Tom", "Bob", "Jane"}; List sta ...

  10. Linux学习历程——Centos 7 man命令

    一.man命令介绍 man,为单词manual的缩写,是linux下的帮助指令. 二.实例 以man命令为例,输入 man  man  获取man命令的帮助文档 可以看出,使用man命令查询到的帮助信 ...