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當成有效的表達式來求值並返回計算結果。

相關文章
相關標籤/搜索