随笔分类 - python
摘要:除了用户定义的函数,调用运算符(即 ())还可以应用到其他对象上。如果想判断对象能否调用,可以使用内置的 callable() 函数。Python 数据模型文档列出了 7 种可调用对象。 用户定义的函数 使用 def 语句或 lambda 表达式创建。 内置函数 使用 C 语言(CPython)实现
阅读全文
摘要:接受函数为参数,或者把函数作为结果返回的函数是高阶函数(higherorder function)。map 函数就是一例,如示例 5-2 所示。此外,内置函数 sorted 也是:可选的 key 参数用于提供一个函数,它会应用到各个元素上进行排序。 例如,若想根据单词的长度排序,只需把 len 函
阅读全文
摘要:1 字符问题 “字符串”是个相当简单的概念:一个字符串是一个字符序列。问题出在“字符”的定义上。 在 2015 年,“字符”的最佳定义是 Unicode 字符。因此,从 Python 3 的str 对象中获取的元素是 Unicode 字符,这相当于从 Python 2 的unicode 对象中获取的
阅读全文
摘要:例如,我们有一个电子邮件地址的集合(haystack),还要维护一个较小的电子邮件地址集合(needles),然后求出 needles 中有多少地址同时也出现在了 heystack 里。借助集合操作,我们只需要一行代码就可以了 needles 的元素在 haystack 里出现的次数,两个变量都是
阅读全文
摘要:有时候为了方便起见,就算某个键在映射里不存在,我们也希望在通过这个键读取值的时候能得到一个默认值。有两个途径能帮我们达到这个目的,一个是通过 defaultdict 这个类型而不是普通的 dict,另一个是给自己定义一个 dict 的子类,然后在子类中实现 __missing__ 方法。下面将介绍这
阅读全文
摘要:setdefault(key, default) 函数 有key获取值、没key设置 key:default 如果 key 在 字典中,返回对应的值。 如果 key 不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
阅读全文
摘要:数组 如果我们需要一个只包含数字的列表,那么 array.array 比 list 更高效。数组支持所有跟可变序列有关的操作,包括 .pop、.insert 和.extend。另外,数组还提供从文件读取和存入文件的更快的方法,如.frombytes 和 .tofile。 Python 数组跟 C 语
阅读全文
摘要:可以看到当seed()没有参数时,每次生成的随机数是不一样的,而当seed()有参数时,每次生成的随机数是一样的,同时选择不同的参数生成的随机数也不一样
阅读全文
摘要:bisect 模块包含两个主要函数,bisect 和 insort,两个函数都利用二分查找算法来在有序序列中查找或插入元素。 2.8.1 用bisect来搜索 bisect(haystack, needle) 在 haystack(干草垛)里搜索needle(针)的位置,该位置满足的条件是,把 ne
阅读全文
摘要:增量赋值运算符 += 和 *= 的表现取决于它们的第一个操作对象。简单起见,我们把讨论集中在增量加法(+=)上,但是这些概念对 *= 和其他增量运算符来说都是一样的。 += 背后的特殊方法是 __iadd__ (用于“就地加法”)。但是如果一个类没有实现这个方法的话,Python 会退一步调用 __
阅读全文
摘要:collections.namedtuple 是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类——这个带名字的类对调试程序有很大帮助。 用 namedtuple 构建的类的实例所消耗的内存跟元组是一样的,因为字段名都被存在对应的类里面。这个实例跟普通的对象实例比起来也要小一些,因为
阅读全文
摘要:容器序列 list、tuple 和 collections.deque 这些序列能存放不同类型的数据。 扁平序列 str、bytes、bytearray、memoryview 和 array.array,这类序列只能容纳一种类型。 容器序列存放的是它们所包含的任意类型的对象的引用,而扁平序列里存放的
阅读全文
摘要:生成器表达式:(ord(symbol) for symbol in symbols) 列表推导式:[ord(symbol) for symbol in symbols] 这是因为生成器表达式背后遵守了迭代器协议,可以逐个地产出元素,而不是先建立一个完整的列表,然后再把这个列表传递到某个构造函数里。前
阅读全文
摘要:首先介绍下filter和map: filter: filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列
阅读全文
摘要:python2中: 此时x打印为:'C' python3中: 此时x打印为:'my love' 在 Python 3 中都有了自己的局部作用域,就像函数似的。表达式内部的变量和赋值只在局部起作用,表达式的上下文里的同名变量还可以被正常引用,局部变量并不会影响到它们。 在python3中: x = '
阅读全文
摘要:__str__是在str()函数被使用,或是在print函数打印一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好。 如果只想实现这两个特殊方法中的一个,__repr__是更好的选择,因为如果一个对象没有__str__函数,而Python又需要调用它的时候,解释器会用__repr__作为替
阅读全文
摘要:Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列 一,最简单的排序 1.使用sort排序 使用sort()方法对list排序会修改list本身,不会返回新list,通常此方法不如sorted()方便,但是如果你不需
阅读全文
摘要:对于这两个好像功能都差不多,这两个经常会被搞混,所以今天一定要把这个完全弄清楚。 首先我们看看range: range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。注意这里是生成一个序列。 xrange的用法与range相同,
阅读全文
摘要:1 概念 Django的ORM中存在查询集的概念。 查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返回满足条件之
阅读全文
摘要:class Foo(object): def func(self, name): print(name) # 第一种,通过实例对象调用func方法 foo = Foo() foo.func('allin') # 第二种,通过类名调用func方法 foo = Foo() Foo.func(foo, 'allin') # 两种方法等价
阅读全文

浙公网安备 33010602011771号