python 内置函数2

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 则保留,不然过滤掉

返回结果 :

  • 列表(python 2.0)
  • filter对象(python 3.0),通常用List() 再转换成列表
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当成有效的表达式来求值并返回计算结果。

相关文章
相关标签/搜索