流畅的Python之序列类型

序列类型:
list 、tuple、str、array.array、collections.deque、bytes、bytearray、memoryview
容器序列:能够存放不同类型的数据
list、tuple 、 collections.deque
扁平序列:仅能容纳一种类型的数据
str、bytes、bytearray、memoryview 、 array.array

        ~~~~~~~        容器序列存放的是它们所包含的任意类型的对象的引用,而扁平序列里存放的是值而不是引用。换句话说,扁平序列其实是一段连续的内存空间。由此可见扁平序列其实更加紧凑,但是它里面只能存放诸如字符、字节和数值这种基础类型。

        ~~~~~~~        列表推导和生成器表达式能让你写出可读性更好更高效的代码,十分有用,且能日常代替filter()和map()的使用。

列表推导

        ~~~~~~~        列表推导是构建列表(list)的快捷方式。

# 将字符变为ASCII码  ord()
symbols = '$¢£¥€¤'
code = []
for i in symbols: # 这里的i指的是symbols对象的引用 i = $、¢、£、¥、€、¤
    code.append(ord(i))
code
>>> [36, 162, 163, 165, 8364, 164]

使用列表推导的简洁写法:
symbols = '$¢£¥€¤' 
code = [ ord(i) for i in symbols ] 
code
>>> [36, 162, 163, 165, 8364, 164]

注意:Python 会忽略代码里 []、{} 和 () 中的换行和空格,因此如果你的代码里有多行的列表、列表推导、生成器表达式、字典这一类的,可以省略不好看的续行符 \。

关于filter()和map()

filter() 作用于序列,过滤掉序列中不符合条件的元素,返回一个迭代器对象(<filter at 0x26241e97b88>),使用 list() 转换成列表。该函数接收两个参数,第一个为判别条件函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回True 的元素放到新列表中。

filter(function, iterable)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值