enumerate() 函数
对与一个可迭代的对象(如,列表,元组),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
用法:
enumerate(x,y) y可不填,y代表起始索引值,默认为0,可自行设置如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样:
list1 = ["这", "是", "一个", "测试"]for i in range (len(list1)): print (i ,list1[i])'''0 这1 是2 一个3 测试'''
上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"]for i in enumerate(list1): print (i)'''(0, '这')(1, '是')(2, '一个')(3, '测试')'''
如果设置起始值,如1,则从1开始
list1 = ["这", "是", "一个", "测试"]for i,j in enumerate(list1,1): print (i,j)'''1 这2 是3 一个4 测试'''
其他写法:注意这里的 i[0] , i[1]
list1 = ["这", "是", "一个", "测试"]for i in enumerate(list1,1): print (i[0],i[1])'''1 这2 是3 一个4 测试'''
format()函数
格式化字符串 和 %s 类似
s='i am {0},{1}'s.format('lee','die')
apply() 执行函数
def foo(x): print xapply(foo,x)
map(x,y)函数
x 为1函数,y 为1个序列
python 2.0: 对可迭代函数 'iterable' 中的每一个元素应用 ‘function’ 方法,将结果作为 list 返回。
python 3.0+: 返回的是1个 map 对象,如果想要返回 list ,则需要用 List() 函数转换
def foo (arg): return arg+100li=[11,12,13]print(map(foo,li))temp=list(map(foo,li)) #python3.0+ 返回列表需要用List()函数转换print(temp)#也可以用lambda 表达式temp1=map(lambda x:x+100,li)print(list(temp1))
输出结果:
filter() 过滤函数
用法:
filter(条件函数,列表) 如果函数返回值为 true 则保留,否则过滤掉
返回结果 :
- 列表(python 2.0)
- filter对象(python 3.0),一般用List() 再转换成列表
li=[11,22,33]def foo2(arg): if arg <22: return True else: return Falsetemp3=filter(foo2,li)print(temp3)print(list(temp3))
得到结果:
[11]
zip()函数
zip([seql, ...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的zip对象,python3.0一般加list()转换成列表。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。
a=[1,2,3]b=[2,3,4]c=[7,8,9]print(list(zip(a,b,c)))#输出结果:[(1, 2, 7), (2, 3, 8), (3, 4, 9)]X=[1,2]C=['A','B',3,4]L1=zip(x,c)print(list(l1))#输出结果 [(1, 'A'), (2, 'B')]
eval()函数
将字符串str当成有效的表达式来求值并返回计算结果。