Python基础-切片和迭代
2016-11-07 20:11
169 查看
Python
切片和迭代
切片
现有footballStar=['Messi','Henry','Iniesta'],如何取 list 中的前 n个元素了?
我们可以使用循环,如下所示:
footballStar = ['Messi', 'Henry', 'Iniesta'] n = 2 r = [] for i in range(n): r.append(footballStar[i]) print(r)
对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。
正序切片
对于取前面两个元素,可以直接使用以下语句完成:>>> footballStar[0:2] ['Messi', 'Henry'] >>> footballStar[:2]# 第一个索引为0,可以省略 ['Messi', 'Henry'] >>> footballStar[1:3] ['Henry', 'Iniesta'] >>> footballStar[:]#只用一个: 表示从头到尾 ['Messi', 'Henry', 'Iniesta']
切片操作还可以指定第三个参数,第三个参数表示每N个取一个.
>>> footballStar[::2] ['Messi', 'Iniesta']#每两个元素取出一个来,也就是隔一个取一个。
逆序切片
>>> footballStar[-2:] ['Henry', 'Iniesta'] >>> footballStar[:-2] ['Messi'] >>> footballStar[-3:-1] ['Messi', 'Henry']
字符串切片
>>> 'abcdefg'[:3] 'abc' >>> 'abcdefg'[-3:] 'efg' >>> 'abcdefg'[::3] 'adg'
迭代
在Python中,迭代是通过 for … in 来完成的.相比于 c 或者 java,Python的for循环抽象程度要高于Java的for循环。因为 Python 的 for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上。因此,迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。索引迭代
Python中,迭代永远是取出元素本身,而非元素的索引。对于有序集合,元素是有索引的,那么我们要怎么拿到这些索引了.Python 中提供了enumerate() 函数来解决这个问题.>>> footballStar = ['Messi', 'Henry', 'Iniesta'] >>> for index,name in enumerate(footballStar): ... print(index,'-',name) ... 0 - Messi 1 - Henry 2 - Iniesta
迭代 dict 的 value
dict对象本身就是可迭代对象,用 for 循环直接迭代 dict,可以每次拿到dict的一个key。dict = {'Messi': 50, 'Henry': 34, 'Iniesta': 15} for key in dict: print(key) #Iniesta #Henry #Messi
那么我们该怎样 迭代 dict 对象的value?dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value.
for value in dict.values(): print(value) #50 #34 #15
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
如果同时迭代 key 和 value,可以使用dict.items()方法.
for key, value in dict.items(): print(key, '->', value) #Iniesta -> 15 #Henry -> 34 #Messi -> 4000 ; 50
如何判断一个对象是否是可迭代的对象?可以通过 collections 模块的 Iterable 类型判断:
>>> from collections import Iterable >>> isinstance('jf',Iterable)#str 是否可以迭代 True >>> isinstance([1,2,3],Iterable)#list 是否可以迭代 True >>> isinstance(123,Iterable)#整数是否可以迭代 False
相关文章推荐
- python基础之切片、迭代和列表生成式
- python基础四_函数,切片,迭代
- Python3 基础:高级特性-切片和迭代
- Python基础-切片与迭代
- python 语言基础之切片,迭代
- python基础IV(切片、迭代、生成列表)
- python基础2(dict—set—函数—切片—迭代—列表range)
- python基础教程共60课-第30课字符串的索引和切片
- Python基础5--迭代
- 三、python高级特性(切片、迭代、列表生成器、生成器)
- Python的高级特性之切片、迭代、列表生成式、生成器
- python入门--切片,迭代,列表生成
- Python语言(七)切片和迭代
- python(六)切片,生成式,生成器,迭代
- Python学习笔记(五)Python的切片和迭代
- 2016.4.7Python高级特性之切片与迭代
- python基础学习六: 切片
- Python基础4--切片
- python入门笔记(Day3)--切片,迭代(器),列表生成式/器,
- python 基础教程之迭代