python06-切片、列表生成器

原创 2016年05月31日 14:06:50

1 切片操作

切片是截取list/tuple/str中元素的简便操作。这是一种采用下标操作的方式,所以自然不适合于dict和set这种无序存储对象。

比如说有一个list是L=[1,2,3,4,5]
那么针对该list的切片操作就有以下几种:

  • L[1:5] 结果为[2,3,4,5]
    表示截取L中下标为1到下标为4的元素。注意两点:

    1、list的下标是从0开始的,我只见过matlab下标从1开始。
    2、“含前不含后”:即包含前面的下标,但是不包含后面的那个下标,比如上面的例子中是1到4而不是1到5

  • L[:2] 结果为[1,2]
    L[2:] 结果为[3,4,5]
    L[:] 结果为[1,2,3,4,5]

    省略最前面的那个数字代表从列表第一个开始,省略第二个数字代表到最后一个为止并且包含最后一个!两个数字到省略,代表全部。

  • L[-5:-1] 结果为[1,2,3,4]

    因为L[-1]代表的是list的最后一个元素,所以也可以倒数切片,当然了还是“含前不含后”,最后一个不包含。

  • L[::2] 结果为[1,3,5]
    L[0:5:2] 结果为[1,3,5]
    最后一个数字表示每几个元素取一个!也就是可以间隔取。

  • 最后一点,其他对象的切片。
    (2,3,4,5)[:2] 结果为(2,3)
    “suitengjie”[2::2] 结果为“iegi”

2 列表生成式

由一个列表产生一个新的列表,切片是一种方式,列表生成式更是一种强大的方式。
使用方法就是:把for循环当做定语用就可以了。

[含n的表达式 for n in  list的名字]

使用方法依次讲解如下:

a、普通用法

[n*n for n in range(1,9,2)]
结果为:
[1,9,25,49]

b、结合判断语句

[n+2 for n in range(10) if n%2==0]
结果为:
[2,4,6,8,10]

这一应用表明,在for循环后面还可以加if判断语句做筛选呢。

c、双变量

[k+’=’+v for k,v in {‘x’:’a’,y’:’b’,’z’,’c’}.items()]
结果为:
‘x’=’a’
‘y’=’b’
‘z’=’c’

有一点在这里进行讲解:加号’+’在列表和字符串操作中的作用


 - [‘sui’,’sun’]+[‘bianbian’] 结果为: [‘sui’,’sun’,’binabian’]

 - ‘sui’+’sun’ 结果为: ‘suisun’

d、双重循环

[m+n for m in ‘sui’ for n in ‘sun’]
结果为:
[‘ss’,‘su’,‘sn’,‘us’,’uu’,’un’,’is’,’iu’,’in’]

这里是双重循环,要注意的是双重循环并不是属于同一级的,是两级循环。要将双重循环跟两个变量的循环区分开来!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

python——切片 迭代 列表生成式 生成器

切片 slice,对list进行筛选生成新list namelist = ['Bob', 'Jack', 'Tom', 'Harry', 'Green', 'Martin'] print namel.....

Python 容器切片,数组推倒,生成器

切片可以获取某个区间段的元素 li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 切片 print(li[2:5]) # 2<= idx < 5 左闭右开 prin...

python学习笔记-4.2列表和切片

python-列表和切片列表和元组列表(list)len()内置函数可查看列表中元素的个数shop_list = ['iphone7','apple','ipad','coffee'] print s...

python基础2(dict—set—函数—切片—迭代—列表range)

1、dict定义字典,dict的key不可重复 d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }>>> print d['Adam'] 95...

Python列表切片详解([][:][::])

Python切片是list的一项基本的功能,最近看到了一个程序,里面有这样一句类似的代码:a = list[::10]不太明白两个冒号的意思就上网百度,发现大多数人写的博客中都没有提到这一个用法,因此...

Python 2、函数&切片&迭代&列表生成式

☆函数:def fun_name(param): return xxxx返回多值:def move(x, y, z): return x, y x, y = move(1, 2, 3)...

3.Python进阶-切片+列表生成式+复杂表达式+条件过滤+多层表达式

本文介绍Python语言的以下功能: (1)切片;(2)列表生成式;(3)复杂表达式;(4)条件过滤;(5)多层表达式。 (1)切片 #-*- coding:utf-8 -*- #1.功能:切片...

python 列表切片

什么是切片? 字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。我们可以把序列想像成一个队列,我可能需要前面三位、...

Python高级特性-迭代(Iteration)-列表生成式-生成器

定义用for循环对list或tuple进行遍历我们称之为迭代(Iteration)
  • eocee
  • eocee
  • 2015-05-19 22:49
  • 304

PYTHON自学笔记4之列表生成器

练习列表生成式
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)