深浅拷贝、集合set、函数、日志
#-----深浅拷贝----
import copy a = ["xiaoming",111,[5000,2000]]
b = a
print("b:%s" % b) #a,b共享同一块内存地址,输出结果b:['xiaoming', 111, [5000, 2000]] #浅拷贝只拷贝第一层,第二层指针指向共享[5000,2000]
c = a.copy() #浅拷贝
c[0] = "xiaowang"
c[1] = 222
a[2][1] -= 300
print("c:%s" % c) #c:['xiaowang', 222, [5000, 1700]] d = copy.copy(a) #浅拷贝
d[0] = "xiaoyang"
d[1] = 333
d[2][1] -= 700
print("d:%s"% d) #d:['xiaoyang', 333, [5000, 1000]] #深拷贝,克隆相同的一份
e = copy.deepcopy(a) #深拷贝
e[2][1] += 1000
print("e:%s" % e) #e:['xiaoming', 111, [5000, 2000]]
#----集合(set)-----
#集合把不同的元素组合在一起
a = set("python project")
print(a) #{'c', ' ', 'p', 'e', 'h', 'j', 'y', 'o', 't', 'r', 'n'}
b = set(["python","linux","java","linux"])
print(b,type(b)) #{'python', 'java', 'linux'} <class 'set'> #set去重
print(list(b)) #['java', 'linux', 'python'] #转为列表
#集合对象是一组无序排列可哈西的值,集合成员可以做字典的键
li = [[1,2],'a','b']
s = set(li)
print(s) #TypeError: unhashable type: 'list' a = [1,2,"a","z"]
b = set(a)
c = {"info":b}
print(c) #{'info': {'a', 1, 2, 'z'}}
#集合分类:可变集合、不可变集合
#可变集合(set):可添加和删除元素,集合(set)是非可哈希的,不能用做字典的键,也不能做其他集合的元素。
#不可变集合(frozenset) 不能添加和删除
#创建集合
a1 = set(("test","hello"))
print(a1) #{'test', 'hello'}
#访问集合
#-----in,not in 判断是否在集合中
a2 = set(["dream","rise",1,2,4])
print("dream" in a2) #True
print("rise" not in a2) #False
#-----for 循环遍历
for i in a2:
print(i)
#集合中添加、修改、删除元素
#-----add 添加
a2.add("uu")
print(a2) #{1, 2, 'uu', 4, 'dream', 'rise'} #-----update 更新
a2.update("abs")
print(a2) #{1, 2, 4, 'dream', 'a', 'rise', 'uu', 's', 'b'} a3 = {1, 2, 4, 'dream', 'rise'}
a3.update([12,"hello",1])
print(a3) #{1, 2, 'hello', 4, 12, 'rise', 'dream'} #-----删除
a3.remove(1)
print(a3) #{'dream', 2, 4, 12, 'hello', 'rise'} a3.pop() #随机删除
print(a3) #{4, 12, 'dream', 'rise', 'hello'} a3.clear() #清空集合
print(a3) del a2 #删除集合
print(a2)
#-----集合操作-----
#集合等价于不等价
print(set("test") == set("tesssssttt")) #等价 #True
print(set("test")!= set("tesssssttt")) a = set([1,2,3,4,5,6,7])
b = set([3,4,5,6,7,8,9]) print(a & b) #交集{3, 4, 5, 6, 7}
print(a | b) #并集{1, 2, 3, 4, 5, 6, 7, 8, 9}
print(a - b) #差集{1, 2}
print(b - a) #差集{8, 9}
print(a ^ b) #对称差集{1, 2, 8, 9} #-----子集、超集(父集)
print(a > b)
print(a < b)
#-----函数-----
#-----作用:
1、减少重复代码
2、方便修改
3、保持代码一致性 #-----函数的命名规则:
1、函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线组合。
2、不能使用任何的标点符号
3、函数名是区分大小写
4、函数名不能是保留字 #-----形参和实参
形参:形式参数,不是实际存在,是虚拟变量。
实参:实际参数,电泳函数时传给函数的参数。
#-----logging模块-----
import logging
logger = logging.getLogger() #创建logger对象
fh = logging.FileHandler('test.log') #创建文件输出对象
sh = logging.StreamHandler() #创建屏幕输出对象
formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formater)
sh.setFormatter(formater)
logger.addHandler(fh) #添加文件输出
logger.addHandler(sh) #添加屏幕输出
logger.setLevel(logging.WARNING) #添加日志级别
logger.debug('debug message1')
logger.info('info message2')
logger.warning('warning message3')
logger.error('error message4')
logger.critical('critical message5')
#-----logging屏幕输出、文件写入日志信息-----
2019-09-24 16:48:27,485 - root - WARNING - warning message3
2019-09-24 16:48:27,485 - root - ERROR - error message4
2019-09-24 16:48:27,486 - root - CRITICAL - critical message5
深浅拷贝、集合set、函数、日志的更多相关文章
- 深浅拷贝 集合(定义,方法) 函数(定义,参数,return,作用域) 初识
深浅拷贝 在python中浅拷贝 a=[1,2,3,4,]b=a.copy()b[0]='3333'print(a) #[1, 2, 3, 4] 浅拷贝一层并不会对a造成变化print(b) #[33 ...
- python 小数据池 深浅拷贝 集合
1.小数据池: 1.1代码块: 一个文件,一个函数,一个类,一个模块,终端中每一行 1.1.1 数字: -5 ~ 256 1.1.2 字符串: 乘法时总长度不能超过20 1.1.3 布尔值: 内容相同 ...
- python 深浅拷贝&集合
一.深浅拷贝 1.浅拷贝,只会拷贝第一层 s = [1, 'ss', '小可爱'] s1 = s.copy() print(s1) >>> [1, 'ss', '小可爱'] s = ...
- python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...
- python基础-3 集合 三元运算 深浅拷贝 函数 Python作用域
上节课总结 1 运算符 in 字符串 判断 : “hello” in "asdasfhelloasdfsadf" 列表元素判断:"li" in ['li', ...
- Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数
一.上节课的重点回顾: 1.类名加括号其实就是执行类的__init__方法: 2.int a.创建方式 n1 = 123 #根据int类创建了一个对象 n2 = int(123) #根据int类创建一 ...
- Python学习基础(二)——集合 深浅拷贝 函数
集合 # 集合 ''' 集合是无序不重复的 ''' # 创建列表 l = list((1, 1, 1)) l1 = [1, 1, 1] print(l) print(l1) print("* ...
- python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)
s12-20160116-day03 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Python Set集合,函数,深入拷贝,浅入拷贝,文件处理
1.Set基本数据类型 a.set集合,是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set o ...
随机推荐
- vector的基本操作
vector怎么删除元素? #include<iostream> #include<vector> using namespace std; int main() { vect ...
- vue-loader和单页组件介绍
一.Vue Loader介绍 Vue Loader 是一个 webpack 的loader,它允许你以一种名为 单文件组件(SFCs)的格式撰写 Vue 组件.官方文档地址如下所示: Vue Load ...
- B1020 月饼(25分)
#include<cstdio> #include<algorithm> #include<iostream> using namespace std; struc ...
- 【LGR-060】洛谷10月月赛 I
A - 打字练习 出题:memset0 送分模拟题,按题意模拟即可. 需要注意的是对退格键的判断,如果光标已经在行首,则直接忽略被读入的退格键. B - 小猪佩奇爬树 出题:_QAQ 维护所有相同节点 ...
- MySQL实战45讲学习笔记:第二十二讲
一.引子 不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内.临时性地提升一些性能. 我以前做业务护航的时候,就偶尔会碰上这种场景.用 ...
- [LeetCode] 421. Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ...
- [LeetCode] 179. Largest Number 最大组合数
Given a list of non negative integers, arrange them such that they form the largest number. Example ...
- Apollo:微服务架构下的配置管理
问题背景 在实际工作中,我们的开发环境,测试环境,生产环境对应的 Mysql 数据库,Redis 这些信息都不一样,每个环境都有对应的一套配置,在 Spring Boot 中我们通常会编写多个配置文件 ...
- Pytorch循环神经网络LSTM时间序列预测风速
#时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征.这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大 ...
- Salesforce 开发整理(十一) 自定义放大镜查找效果
有时候在自定义的visualforce页面上,需要实现系统标准的查找样式,当不能使用标准的style的时候,我们只能选择自定义实现,下面分享一个demo,预览效果如下: 实现代码,Visualforc ...