Python教程

流畅的python读书笔记②:序列构成的数组

本文主要是介绍流畅的python读书笔记②:序列构成的数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 2.1 内置序列类型
    • 按存放数据类型分类
    • 按是否能被修改来分类
  • 2.2 列表推导和生成器表达式
    • 2.2.1 列表推导和可读性
      • 代码2-1 把一个字符串变成Unicode码位的列表
  • 声明


2.1 内置序列类型

按存放数据类型分类

容器序列——存放的是它们所包含的任意类型的对象的引用,有:list(列表)、tuple (元组)和 collections.deque (双向列表)。

扁平序列——存放具体的值,显然,扁平序列更加紧凑,但是其仅能存放如字符、字节、数值等基础数据类型,有:str(字符串)、bytes(字节)、bytearray(字节数组)、memoryview (内存查看对象)和 array.array(数组)。

按是否能被修改来分类

可变序列
list、bytearray、array.array、collections.deque 和 memoryview。

不可变序列
tuple、str 和 bytes。

2.2 列表推导和生成器表达式

列表推导是构建列表(list)的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列。

2.2.1 列表推导和可读性

代码2-1 把一个字符串变成Unicode码位的列表

#《流畅的python》p59

#常规写法
>>> symbols = '$¢£¥€¤'
>>> codes = []
>>> for symbol in symbols:
#ord()函数以一个字符为参数,返回它对应的ascii编码或Unicode编码
... codes.append(ord(symbol))
...
>>> codes
[36, 162, 163, 165, 8364, 164]

#列表推导
>>> symbols = '$¢£¥€¤'
>>> codes = [ord(symbol) for symbol in symbols]
>>> codes
[36, 162, 163, 165, 8364, 164]

声明

本文来自《流畅的python》以及笔者自己的思考,如有错误,欢迎指正。

这篇关于流畅的python读书笔记②:序列构成的数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!