云服务器

人生苦短我用python[0x06] list分片与推导

2017-06-22 14:49:36 0

list是python常用的内置类型,实现了一个列表的功能,今天我们主要讲列表的一些比较灵活好用的特性,其他常见简单的就不再一一描述。

分片

python的list分片 list[下标开始:下标结束:步长],下标从0开始,可以忽略里面部分参数,参数也可以为负数。看如下几个例子
>>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[:5] #获取前面5个元素
[0, 1, 2, 3, 4]
>>> x[3:5] #获取下标第3个到下标5之前的元素,不包含下标5
[3, 4]
>>> x[-3:] #获取最后3个元素
[7, 8, 9]
>>> x[1::1] #获取下标1开始的元素,每次获取的步长为1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[1::2] #获取下标1开始的元素,每次获取的步长为2
[1, 3, 5, 7, 9]

推导

python的list可以使用表达式推导的方式进行初始化,支持以下2种推导方式

[表达式 for 变量 in 列表]

>>> x = [x for x in range(10)] #初始化一个从0到9的列表
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = [x*x for x in range(10)] #初始化一个数值为下标值平方的列表
>>> x
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

[表达式 for 变量 in 列表 if 条件]

>>> x = [x for x in range(10) if x%2] #初始化一个10以内的奇数列表
>>> x
[1, 3, 5, 7, 9]
>>> x = [x for x in range(10) if not x%2] #初始化一个10以内的偶数列表
>>> x
[0, 2, 4, 6, 8]

 

上一篇: 无

微信关注

获取更多技术咨询