随笔分类 - 面试题
摘要:答案:是,从列表变为生成器
阅读全文
摘要:可迭代对象:任何你可以用for ... in ... 的对象都是可迭代对象, list,strings, files, sockets…。 当你创建一个list的时候,你一个个的获取list里面的值,这就是可迭代对象 迭代器:它是一个带状态的对象,他能在你调用next()方法的时候返回容器中的下一个
阅读全文
摘要:为什么不能用 dct1 = dct2 赋值?因为指向的是同一个内存地址 针对复合型对象而言,深浅拷贝会有如下区别: - 浅拷贝:创建一个新复合型对象, 然后将所有原对象包含的其他对象的内存引用插入到新对象里面 - 深拷贝:创建一个新复合型对象, 将所有的原对象的的拷贝值插入到新对象中
阅读全文
摘要:不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。如果使用传统的 try/finally 范式,则要使用类似如下代码: 格式: context_expression 要返回一个上下文管理器对象,该对象并不赋值给 as 子句中的 target(s) ,如果指
阅读全文
摘要:__new__ 控制类实例创建过程时使用, 会在__init__ 调用之前调用, 调用这个方法之后,会返回一个实例 == __init__中的 self __init__ 控制初始化一个类实例, 不会返回任何东西,它只负责初始化一个类实例
阅读全文
摘要:为了能让一个函数接受任意数量的位置参数:* 为了接受任意数量的关键字参数:** *参数只能出现在函数定义中最后一个位置参数后面,而**参数只能出现在最后一个参数 解决的问题:构造一个可接受任意数量参数的函数
阅读全文
摘要:>>> int("1.6") Traceback (most recent call last): File "", line 1, in ValueError: invalid literal for int() with base 10: '1.6' >>> float("1.6") 1.6 >>>
阅读全文
摘要:可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
阅读全文
摘要:删除字典某个键 – del 合并两个字典 – update() 对一个巨大的字典进行遍历 py2使用iteritems() ;py3使用items()
阅读全文
摘要:is是对比地址;==是对比值
阅读全文
摘要:字符编码: py3中默认字符编码是unicode;py2中默认字符编码是 ASCII,如果文件中出现了中文,需要在顶部加入coding声明#coding:utf8 让用户输入:py3中直接使用input(); py2中需要使用raw_input() range和xrange:py3中的range =
阅读全文
摘要:python2 另外,在Python3中上面的代码的输出有何不同(假设代码中的print语句都转化成了Python3中的语法结构) 在Python2中,代码的输出是: 默认情况下,如果两个操作数都是整数,Python2默认执行整数运算。所以,5/2 结果是2,而5./2结果是2.5 注意你可以通过下
阅读全文
摘要:a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3] a.sort() last=a[-1] for i in range(len(a)-2,-1,-1): if last==a[i]: del a[i] else: last=a[i] print(a)
阅读全文
摘要:答:解决方法是在function的开始插入一个global声明:
阅读全文
摘要:答:术语叫贪婪匹配( <.> )和非贪婪匹配(<.?> ) 例如:
阅读全文
摘要:1,使用set函数,set(list) 2,使用字典函数,
阅读全文
摘要:答:lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 lambda函数:首要用途是指点短小的回调函数
阅读全文
摘要:这里能说的很多。你应该提到下面几个主要的点: Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会小时,分配给该对象的内存就会释放出来用作他用。 偶尔也会出现引用循环(reference cycle)。垃圾回收器会定时寻找这个循环,并将其回收。举个例子,假设有两个对象o1和o2,而且符合o1.x == o2和o2.x == ...
阅读全文
摘要:答:PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告 Pylint是另外一个工具可以进行codingstandard检查
阅读全文
摘要:答:re模块中match(pattern,string[,flags]),检查string的开头是否与pattern匹配。 re模块中research(pattern,string[,flags]),在string搜索pattern的第一个匹配值。
阅读全文