美文网首页
python中一些问题(1)

python中一些问题(1)

作者: 风雨的问候 | 来源:发表于2017-07-13 20:04 被阅读0次
== 与is 的使用

==是比较两个对象是否相等,是值的比较

is 是判断两个引用是否指
向了同一个对象,是引用地址的比较

is ==.JPG
浅拷贝 与 深拷贝

浅拷贝是拷贝了引用地址,没有拷贝内容 ,一方修改,另一方也会受到影响 赋值就是一个浅拷贝


![aaa.JPG](https://img.haomeiwen.com/i6853464/b6a0d3e503565f1e.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

'''
深拷贝:递归拷贝 深拷贝是内容一样,地址不一样
一方修改,另一方不受影响
b = copy.deepcopy(a) a,b内容一样,地址不一样 a如果修改了,b不受影响
如果a中有对象引用,也会拷贝到b中,内容一样,地址不一样
'''
a= [1,2,3,4]

b = copy.deepcopy(a) # 深拷贝

print(id(a))
print(id(b))
print(a)
print(b)

a.append(5)
print(a)
print(b)
print(''50)

a = [1,2,3]
b = [4,5,6]
c=(a,b)

d = copy.deepcopy(c) # 深拷贝

print(id(c))
print(id(d))
print(c)
print(d)

a.append(0)
print(c)
print(d)

copy.copy() 函数

'''
copy.copy() 方法 结果会因为是可变或者不可变导致结果不同

只能拷贝一层

根据类型有关。如果是列表(可变类型),深拷贝。如果是元组(不可变)浅拷贝

如果里面还有嵌套的对象,浅拷贝

如果是嵌套的可变的,外层如果是可变的,拷贝外层相当于深拷贝,地址不一样,
但内层可变类型的值变化,都会受到影响

如果外层是不可变的,内层是可变的,拷贝结果是浅拷贝,地址一样,内容也一样,
一方改变,另一方也受影响
'''
a = (1,2,3)
b = copy.copy(a) # 相当于浅拷贝
print(id(a))
print(id(b))
print(a)
print(b)

生成器 generator

python中一边循环一边生成的机制,叫做生成器 generator

创建生成器:


捕获1.JPG

如果要一个一个打印出来可以通过 next(g)函数获得生成器的下一个返回值

z.JPG

创建生成器的第二种方式:
yield 值

1、调用函数,得到一个生成器对象。这个函数没有执行
2、next调用得到的对象,如果遇到了yield,代码会阻塞,next的返回值就yield后的值

q.JPG

但是用for循环调用generator时,发现拿不到generator的return语句的返回值 要拿到返回值,这时就需要捕获异常啦

生成器的特点:
1,节约内存,
2,迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的

相关文章

  • 使用 Python 过程中出现的一些问题

    记录一下使用 Python 过程中出现的一些问题,持续更新。 问题 1: window 上安装 Python 时会...

  • Python 修炼记

    新手在刚开始接触 Python 的过程中,常会遇到一些问题,下面记录一些我之前遇到的: (1)macOS 终端 报...

  • Linux+Python+Apache+CGI的环境搭建

    在学习Python的CGI编程中,碰到了一些问题,在此处记录下来。地址:Python CGI编程 按照教程配置环境...

  • Python初级常见问题汇总(一)

    Python初学者常见错误总结(一) 下面总结是自己学习python过程中遇到的一些问题,对于自学的人可以很好的避...

  • Python中遇到的坑

    只要一写程序,再加上不熟悉,多多少少会遇到一些问题。在这篇文章中,我把在Python中遇到的一些问题,进行一个简单...

  • Python-小知识

    概览 这篇文章主要用来存放我在工作中使用Python时的一些问题与收获 正文 Python中不允许使用数字打头命名...

  • python selenium chrome使用问题

    在授课的过程中,遇到的一些问题: 要调用Chrome 浏览器,需要把 Chromedriver 放到python目...

  • python中一些问题(1)

    == 与is 的使用 ==是比较两个对象是否相等,是值的比较 is 是判断两个引用是否指向了同一个对象,是引用地址...

  • day2 python 基础语法总结

    1 python常用的快捷键 2 python中的注释 1 # python 的单...

  • python输出杨辉三角

    知识点 1. python中的生成器 generator python生成器 2. python中-1索引表示容器...

网友评论

      本文标题:python中一些问题(1)

      本文链接:https://www.haomeiwen.com/subject/cwrghxtx.html