python map函式的使用方法

2021-10-09 02:29:26 字數 1951 閱讀 1506

map函式是python的內建函式之一。函式形式:

map

(fun,

iter

)

我們將可迭代資料iter傳遞給fun函式進行操作。

nb(注意):#後面的部分表示輸出結果

**如下:

def

func

(n):

return

len(n)

x =map

(func,

('hello'

,'world'))

print

(x)#

print

(list

(x))

# [5, 5]

print

(tuple

(x))

# ()

funcmap函式需要的第乙個引數,該引數為乙個函式表示式,('hello', 'world')map需要的第二個引數,該引數通常是可迭代的,比如列表,元胞,此處我們採用元胞輸入。該函式會將第二個引數中的各個元素值傳遞給func,執行後得到的結果統一返回,這裡我們賦值給x,但是此時的x為乙個map物件並不能夠直接列印顯示,想要直觀地看到列印後的結果,我們還需要使用list或者tuple方法對變數x進行型別轉換,最後列印即可得到輸出。

存在的問題:

我們可以看到當我們使用上述方法列印時,print(list(x))可以正常得到結果[5, 5],而print(tuple(x))不能夠輸出結果。我們進一步進行如下嘗試:

def

func

(n):

return

len(n)

x =map

(func,

('hello'

,'world'))

print

(x)#

print

(tuple

(x))

# (5, 5)

print

(list

(x))

#

對比兩次的結果,我們可以發現,當我們優先以list型別輸出時,list型別結果可以正常顯示,而tuple型別的結果無法正常顯示,當我們以tuple型別優先輸出時,tuple型別結果可以正常顯示,而list型別結果無法正常顯示,彷彿被遮蔽了…這是因為map的結果是乙個可迭代的物件,它只能夠被操作一次,所以當tuple優先操作時,list便為空,list先操作時,tuple便為空。為了避免這種情況的出現,我們可以使用以下方式對**進行改寫:

def

func

(n):

return

len(n)

x =map

(func,

('hello'

,'world'))

x1 =

list

(x)x2 =

tuple

(x1)

print

(x1)

# [5, 5]

print

(x2)

# (5, 5)

可以看到此時輸出可以同時得到listtuple型別的輸出結果。

python map 函式使用

lambda函式 lambda x f x 這就是匿名函式 map f,literate f 表示函式 r map f,1,2,3,4,5,6,7,8,9 list r 1,4,9,16,25,36,49,64,81 題目 把最大的數和第乙個數交換,再把最小的數與最後乙個數交換,其他的數字置不變 樣...

python map函式使用

map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。例如,對於list 1,2,3,4,5,6,7,8,9 如果希望把list的每個元素都作平方,就可以用map 函式 因此,我們只需要傳...

Python map 函式使用詳解

1 函式定義 map function,iterable,2 作用 該函式通過接收乙個函式function作為處理函式,然後接收乙個引數序列iterable,並使用處理函式對序列中的每個元素逐一處理,達到對映的功能。注意 map函式本身是惰性計算的,因此返回的結果並不是真實結果,而是乙個需要被顯示迭...