Python语言(七)切片和迭代

切片

所谓切片是对list来说的,list对象包含一串元素,当需要对它们中的某些元素提取时,通过“切片”非常的方便。例如:

#定义一个list L;
>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
#通过变量名和下标访问元素;
>>> L1 = [L[0], L[1], L[2]]
>>> L1
['Michael', 'Sarah', 'Tracy']
#通过所谓“切片”,也能方便的取出list中的元素;
>>> L2 = L[:3]
>>> L2
['Michael', 'Sarah', 'Tracy']
#上面的方法看作是特例,缺省情况下,起始下标为0,不包括结束下标,也就是不访问L[3],后面的1,表示的是步长,默认为1.
>>> L2 = L[0:3:1]
>>> L2
['Michael', 'Sarah', 'Tracy']
>>> 

list的下标还可以是负值,从右往左分别是-1、-2、...、-n。默认的步长也可以是负值,下面举例说明用法:

#以-4为开始,默认步长为1,直到-1截止。L[-1]即为Jack。
>>> L
['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
>>> L8 = L[-4:]
>>> L8
['Sarah', 'Tracy', 'Bob', 'Jack']

#如果我们想将L翻转,该如何操作呢?
>>> Lr = L[-1::-1]
>>> Lr
['Jack', 'Bob', 'Tracy', 'Sarah', 'Michael']
#或者
>>> Lr2 = L[4::-1]
>>> Lr2
['Jack', 'Bob', 'Tracy', 'Sarah', 'Michael']

迭代

迭代表面对象可以通过for循环来遍历所有元素。在Python中,for语句抽象程度较高些,如:

#有dict对象
>>> d = {'a':1, 'b':2, 'c':3}
>>> d
{'a': 1, 'c': 3, 'b': 2}
>>> for key in d:
	print key
a
c
b
#for语句迭代访问d中的所有键,并打印

#还可以同时遍历多个对象
>>> for key, val in d.iteritems():
	print "%s:%s" % (key, val)	
a:1
c:3
b:2
能用在for语句中的对象必须是可迭代的,Iterable!

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False
可以看出字符串、list、tuple、dict等都是可迭代的,而整数不能。

>>> for ch in "abc":
	print ch	
a
b
c





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值