enumerate() 函数python
对与一个可迭代的对象(如,列表,元组),enumerate将其组成一个索引序列,利用它能够同时得到索引和值app
用法:
enumerate(x,y) y可不填,y表明起始索引值,默认为0,可自行设置函数
若是对一个列表,既要遍历索引又要遍历元素时,首先能够这样:测试
list1 = ["这", "是", "一个", "测试"] for i in range (len(list1)): print (i ,list1[i]) ''' 0 这 1 是 2 一个 3 测试 '''
上述方法有些累赘,利用enumerate()会更加直接和优美:spa
list1 = ["这", "是", "一个", "测试"] for i in enumerate(list1): print (i) ''' (0, '这') (1, '是') (2, '一个') (3, '测试') '''
若是设置起始值,如1,则从1开始code
list1 = ["这", "是", "一个", "测试"] for i,j in enumerate(list1,1): print (i,j) ''' 1 这 2 是 3 一个 4 测试 '''
其余写法:注意这里的 i[0] , i[1]orm
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() 执行函数ip
def foo(x): print x apply(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+100 li=[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))
输出结果:
<map object at 0x000000000113E7B8> [111, 112, 113] [111, 112, 113]
filter() 过滤函数
用法:
filter(条件函数,列表) 若是函数返回值为 true 则保留,不然过滤掉
返回结果 :
li=[11,22,33] def foo2(arg): if arg <22: return True else: return False temp3=filter(foo2,li) print(temp3) print(list(temp3))
获得结果:
<filter object at 0x00000000006F7048> [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当成有效的表达式来求值并返回计算结果。