1.for语句的用法
在C++中,常用如下遍历方式:
for(int i=0; i<len; ++i){
cout<<arr[i]<<" ";
}
而在Python中常用循环对象来遍历列表,在这里,for结构自动调用next()方法,将该方法的返回值赋予给循环对象it。循环知道出现StopIteration的时候结束。相对于序列,用循环对象的好处在于:不用在循环还没有开始的时候,就生成好要使用的元素。所使用的元素可以在循环过程中逐次生成。这样,节省了空间,提高了效率,编程更灵活。
for it in lst: ##自动调用迭代器,自动检测StopIteration
print(it)
在上面的程序中,无法知道当前访问元素的索引,于是有如下代码:
for i in range(len(lst)):
print(lst[i])
同时需要索引,又结合迭代器,就可以采用内置的enumerate函数,代码如下:
for index, it in enumerate(sequence):
process(index, it)
2.表推导方法
表推导(list comprehension)是快速生成表的方法。它的语法简单,很有实用价值。
L = [x**2 for x in range(10)]
3.zip函数
如果你多个等长的序列,然后想要每次循环时从各个序列分别取出一个元素,可以利用zip()方便地实现:
ta = [1,2,3]
tb = [9,8,7]
tc = ['a','b','c']
for (a,b,c) in zip(ta,tb,tc):
print(a,b,c)
每次循环时,从各个序列分别从左到右取出一个元素,合并成一个tuple,然后tuple的元素赋予给a,b,c
name = ['lsj','sps','sjn']
number = [123,4,5]
noteBook = []
for pair in zip(name,number):
noteBook.append(pair)
print noteBook