fluent python-chap2
1. 内置序列类型
容器序列: list tuple collections.deque 可以存放不同类型的数据。 存放的是它们所包含的任意类型的对象的引用。
扁平序列: str bytes bytearray memoryview array.array 只能容纳一种类型,存放的是值而不是引用,是一段连续的内存空间,更加紧凑。
PS.此处我还没找到方法,就是怎么验证扁平序列是一段连续的内存空间。
列表推导式,尽量简单,代码不超过两行,python会忽略[],{},()内的续行符,因此可省略续行符\。
元组拆封,使得元组可以完美地被当作记录来使用。
具名元组namedtuple构建带字段名的元组和一个有名字的类,但是python并不会用__dict__来存放,这使得其内存消耗和元组是一样的。
列表没办法想numpy的数组那样,直接乘一个数,放大多少倍,可以用列表推导式。
test_str = [1,2,3,4,5,6,7]
test_str1 = test_str*2
print(test_str1) test_str = [i*2 for i in test_str]
print(test_str)
# healthy
board = [['_']*3 for i in range(3)] # unhealthy
w_board = [['_']*3]*3
比较有趣的地方,两个id一样:
l = [1,2,3]
print(id(l)) l*=2
print(id(l))
array.tofile和array.fromfile比文本文件读取速度快60倍,占用的字节数也比文本文件少一个数量级。
from array import array
from random import random
floats = array('d',(random() for i in range(10**7)))
fp = open('floats.bin','wb')
floats.tofile(fp)
fp.close()
floats2 =array('d')
fp = open('floats.bin','rb')
floats2.fromfile(fp,10**7)
fp.close()
print(floats==floats2)
memoryview没太看懂……
sort,sorted,以及max, min函数有key参数,这个很有意思。
ll = [32,28,'11','9',19,20,5]
# sort as str
lt = sorted(ll,key=str)
print(lt)
# sort as int
lt2 = sorted(ll,key=int)
print(lt2)
fluent python-chap2的更多相关文章
- 学习笔记之Fluent Python
Fluent Python by Luciano Ramalho https://learning.oreilly.com/library/view/fluent-python/97814919462 ...
- 「Fluent Python」今年最佳技术书籍
Fluent Python 读书手记 Python数据模型:特殊方法用来给整个语言模型特殊使用,一致性体现.如:__len__, __getitem__ AOP: zope.inteface 列表推导 ...
- Fluent Python: memoryview
关于Python的memoryview内置类,搜索国内网站相关博客后发现对其解释都很简单, 我觉得学习一个新的知识点一般都要弄清楚两点: 1, 什么时候使用?(也就是能解决什么问题) 2,如何使用? ...
- Python深入学习之《Fluent Python》 Part 1
Python深入学习之<Fluent Python> Part 1 从上个周末开始看这本<流畅的蟒蛇>,技术是慢慢积累的,Python也是慢慢才能写得优雅(pythonic)的 ...
- Fluent Python: Classmethod vs Staticmethod
Fluent Python一书9.4节比较了 Classmethod 和 Staticmethod 两个装饰器的区别: 给出的结论是一个非常有用(Classmethod), 一个不太有用(Static ...
- Fluent Python: @property
Fluent Python 9.6节讲到hashable Class, 为了使Vector2d类可散列,有以下条件: (1)实现__hash__方法 (2)实现__eq__方法 (3)让Vector2 ...
- Fluent Python: Mutable Types as Parameter Defaults: Bad Idea
在Fluent Python一书第八章有一个示例,未看书以先很难理解这个示例运行的结果,我们先看结果,然后再分析问题原因: 定义了如下Bus类: class Bus: def __init__(sel ...
- 《Fluent Python》---一个关于memoryview例子的理解过程
近日,在阅读<Fluent Python>的第2.9.2节时,有一个关于内存视图的例子,当时看的一知半解,后来查了一些资料,现在总结一下,以备后续查询: 示例复述 添加了一些额外的代码,便 ...
- Fluent Python: Slice
Pyhton中序列类型支持切片功能,比如list: >>> numbers = [1, 2, 3, 4, 5] >>> numbers[1:3] [2, 3] tu ...
- fluent Python
1.1 Python风格的纸牌 Python collections模块中的内置模块:namedtuple https://www.liaoxuefeng.com/wiki/0013747381250 ...
随机推荐
- sheetjs导出表格时间错误问题
最近使用sheetjs,前端web去导出生成excel,xlsx表格.其中遇到一种问题,那就是时间出错了!比如多出8小时43秒,少了43秒.看到这种问题的时候,我也一脸懵逼.先上图! 不过在有些人电脑 ...
- Flink 内存配置学习总结
设置进程内存(Process Memory) Apache Flink通过严格控制其各种组件的内存使用,在JVM之上提供高效的工作负载. 配置总内存(Total Memory) Flink JVM进程 ...
- ThinkPHP一对一关联模型的运用(ORM)
一.序言 最近在写ThinkPHP关联模型的时候一些用法总忘,我就想通过写博客的方式复习和整理下一些用法. 具体版本: topthink/framework:6.1.4 topthink/think- ...
- 【Vue】Re15 Router 第二部分(缺省路由、动态路由)
一.设置首页重定向: import Vue from 'vue'; import Router from 'vue-router'; import Home from "../compone ...
- 【Redis】04 配置文件分析
配置文件Redis.conf注释信息: 1.启动项: 启动Redis要求必须加上配置文件redis.conf路径作为第一参数加载 文档样例: ./redis-server /path/to/redis ...
- 【MySQL】Windows-5.7.30 解压版 下载安装
1.Download 下载 mysql官网: https://dev.mysql.com/ 找到download点击进入下载页面: https://dev.mysql.com/downloads/ 找 ...
- 寻路数据集 —— PathFinding数据集 —— Moving AI Lab. 实验室
好几个做pathfinding的论文都是引用这个网站的数据集,不过这个网站的数据集的地图都是 .map 格式,这个类型的格式该如何打开还不知道. Moving AI Lab. 实验室的工作 地址: h ...
- 如何安装废弃版本的Jax —— pypi服务器上不保存的python包应该如何安装
python的公开扩展包的存储是在网站: http://pypi.org/ 一般情况下,这是没有问题的,但是对于一些更新版本比较多的扩展包就出现了问题,因为pypi的服务器对每个项目(扩展包)都是由存 ...
- openAI的仿真环境Gym Retro的Game Integration——新游戏融合(将retro中没有融合的ROM游戏加入其中)
官方原地址: https://retro.readthedocs.io/en/latest/integration.html#integration-files =================== ...
- [SDOI2010] 城市规划 题解
前言 题目链接:洛谷. 题意简述 树套环上求至少间隔两个位置的最大独立集. (树套环,即树上每个结点都是一个结点或环) 题目分析 将题目拆解成树上 DP 和环上 DP 即可.用 tarjan 缩点就行 ...