码迷,mamicode.com
首页 > 编程语言 > 详细

python之切片与迭代

时间:2018-04-23 23:17:20      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:python之切片与迭代

取一个列表或元组的部分元素是非常常见的操作。

n=[]
(n[]n[])

当取多个元素时,可以用python自带的切片(slice)

n=[]
(n[:])
[123, 234]

n[0:2]表示,从索引0开始,直到索引2为止,但不包含索引2,即索引0,1,正好是2个元素,如果第一个元素是0还可以省略

print(n[:2])

也可以从索引1开始,取两个元素

n=[]
(n[:])
[234, 456]

倒数第一个元素的索引是-1

操作切片十分有用,先创建一个0-99的数列:

L=(())
(L)
(L[:])

取最后10个

L=(())
(L[-:])
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

所有数,每5个取一个,在【开始:结束:步长】

L=(())
(L[::])
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]

复制一个列表

L[:]

tuple也是一个list,只是tuple不可变,所以tuple也可以做切片,结果仍然是tuple

print((1,2,3,4,5,6)[:3])
(1,2,3,4,5,6)为元组[:3]为切片操作

字符串也可以看成是一种list,每个元素就是一个字符串,因此字符串也可以用切片操作,结果仍为字符串

([:])
([::])

迭代

如果给定一个list或tuple,我们可以用for循环来遍历,这种遍历称之为迭代。

list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代

技术分享图片

因为dict不是按照list的方式顺序排列,所以迭代出的结果顺序很可能不一样。默认情况下,dict迭代的是key,如果要迭代value,可以用

for  value in d.values():,如果要同时迭代key和value,可以用for  k,v in d.items()。

字符串也可以迭代

技术分享图片


所以对于for循环,只要作用于一个可迭代对象,for就能正常运行。

判断一个对象是否能迭代的方法

collections模块的

Iterable类型

技术分享图片

实现对list的下标循环

enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。

ivalue  ([]):
    (ivalue)

上面的循环,同时引用两个变量,在python里很常见,下面示例

技术分享图片



python之切片与迭代

标签:python之切片与迭代

原文地址:http://blog.51cto.com/13272050/2107010

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!