1. 程式人生 > >Python map()函式的用法

Python map()函式的用法

Python函數語言程式設計之map()

Python中map()、filter()、reduce()這三個都是應用於序列的內建函式。
格式:
map(func, seq1[, seq2,…])
第一個引數接受一個函式名,後面的引數接受一個或多個可迭代的序列,返回的是一個集合。
Python函式程式設計中的map()函式是將func作用於seq中的每一個元素,並將所有的呼叫的結果作為一個list返回。如果func為None,作用同zip()。

1、當seq只有一個時,將函式func作用於這個seq的每個元素上,並得到一個新的seq。
讓我們來看一下只有一個seq的時候,map()函式是如何工作的。
work


從上圖可以看出,函式func函式會作用於seq中的每個元素,得到func(seq[n])組成的列表。下面舉得例子來幫助我們更好的理解這個工作過程。

#使用lambda
>>> print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]

3

#使用列表解析
>>> print [x % 2 for x in range(7)]
[0, 1, 0, 1, 0, 1, 0]

4
一個seq時,可以使用filter()函式代替,那什麼情況不能代替呢?

2、當seq多於一個時,map可以並行(注意是並行)地對每個seq執行如下圖所示的過程:
2


從圖可以看出,每個seq的同一位置的元素同時傳入一個多元的func函式之後,得到一個返回值,並將這個返回值存放在一個列表中。下面我們看一個有多個seq的例子:

>>> print map(lambda x , y : x ** y, [2,4,6],[3,2,1])
[8, 16, 6]

5
如果上面我們不使用map函式,就只能使用for迴圈,依次對每個位置的元素呼叫該函式去執行。還可以使返回值是一個元組。如:

>>> print map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,1])
[(8, 5), (16, 6), (6, 7)]

7
當func函式時None時,這就同zip()函數了,並且zip()開始取代這個了,目的是將多個列表相同位置的元素歸併到一個元組。如:

>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]

需要注意的是:
map無法處理seq長度不一致、對應位置運算元型別不一致的情況,這兩種情況都會報型別錯誤。如下圖:
8

3、使用map()函式可以實現將其他型別的數轉換成list,但是這種轉換也是有型別限制的,具體什麼型別限制,在以後的學習中慢慢摸索吧。這裡給出幾個能轉換的例子:

***將元組轉換成list***
>>> map(int, (1,2,3))
[1, 2, 3]
***將字串轉換成list***
>>> map(int, '1234')
[1, 2, 3, 4]
***提取字典的key,並將結果存放在一個list中***
>>> map(int, {1:2,2:3,3:4})
[1, 2, 3]
***字串轉換成元組,並將結果以列表的形式返回***
>>> map(tuple, 'agdf')
[('a',), ('g',), ('d',), ('f',)]
#將小寫轉成大寫
def u_to_l (s):
  return s.upper()
print map(u_to_l,'asdfd')

相關推薦

Python map()函式用法

Python函數語言程式設計之map() Python中map()、filter()、reduce()這三個都是應用於序列的內建函式。 格式: map(func, seq1[, seq2,…]) 第一個引數接受一個函式名,後面的引數接受一個或多個可迭代的

python--- map函式和lambda函式

1...lambda 函式相當於一個匿名函式,顧名思義就是不用取名字的函式,相當於現實中的匿名信。 舉例: lambda x,y: x+y m = lambda x,y,z: (x-y)*z print (m(3,1,2))  執行結果:4 2...map函式&nb

Python 類似函式用法異同整理

1:.read()    /    .readline()    /    .readlines() 都可以接受一個變數以限制每次讀取的資料量,但通常不使用變

python open()函式用法

轉載自:http://www.runoob.com/python/python-func-open.html 1.基本含義:python open() 函式用於開啟一個檔案,建立一個 file 物件,相關的方法才可以呼叫它進行讀寫。 2.函式語法:open(name[, mode[, buf

Python map()函式

描述     map函式是Python的內建函式。它會根據指定的函式對指定的序列做對映。第一個引數function以引數序列中的每一個元素呼叫function函式,返回每次掉用完function返回值後的迭代序列。 語法 map(function, iterable

Python 匿名函式用法和return語句

匿名函式用法1.什麼是匿名函式    函式定義過程中,沒有給定名稱函式,python中用lambda表示式建立匿名函式    lambda只是一個表示式,函式體比def簡單    lambda主題是一個表示式,又有自己的

python-map用法

map()函式 map()是 Python 內建的高階函式,它接收一個函式 f 和一個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。 1、當seq只有一個時,將函式func作用於這個seq的每個元素上,並得到一個新的seq

python round函式用法

round()方法返回 x 的小數點四捨五入到n個數字。 語法 以下是round()方法的語法: round( x [, n] ) 引數 x –這是一個數值表示式 n –這也是一個數值表示式 返回值 該方法返回 x 的小數點四捨五入到n個數字

python map 常見用法

list 合併 1 2 3 4 5 6 7 8 >>>list1=[11,22,33] >>>map(None,list1) [11,22,

Python map() 函式

map() 會根據提供的函式對指定序列做對映。 第一個引數 function 以引數序列中的每一個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。 map(function, iterable, …) functio

python map函式處理字典

a = dict(addr='china', name='samy') map函式上述字典返回的是一個list,那如何返回字典呢? >>> map(lambda x: x.upper(), a.values()) ['CHINA', 'SAMY']

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

Python函式用法全方位解析

Python的functools模組中有一種函式叫“偏函式”,自從接觸它以來,發現確實是一個很有用且簡單的函式,相信你看完這篇文章,你也有相見恨晚的感覺。 我們都知道,函式入參可以設定預設值來簡化函式呼叫,而偏函式的作用就是將入參進行預設填充,降低函式使用的難度。 如int()函式,可以將字元型轉換為整型,且

Python排序函式用法

Python排序函式完美體現了Python語言的簡潔性,對於List物件,我們可以直接呼叫sort()函式(這裡稱為"方法"更合適)來進行排序,而對於其他可迭代物件(如set,dict),我們可以使用更靈活的sorted()函式。 一.List的sort()函式 Python原始碼builtins.py檔案對

python】詳解map函式用法函式並行作用解析

Python函式程式設計中的map(func, seq1[, seq2,…]) 函式是將func作用於seq中的每一個元素,其中seq須是可迭代物件,並將所有的呼叫的結果作為一個list返回。如果func為None,作用同zip()。 本文參考自:Python中map()函式淺析一文,感謝精彩分享。 下面

python中的map()函式和reduce()函式的區別和用法介紹

咱們先從定義上來解釋一下這兩個函式的區別: ①從引數方面來講: map(func, *iterables)包含兩個引數,第一個是引數是一個函式,第二個是序列(列表或元組)。其中,函式(即map的第一個引

pythonmap()函式用法介紹

引入map()方法,首先是從一行程式碼切入的。 程式碼如下: dicts = list(map(lambda x : x.to_dict(), user)) 大家能看懂嗎? 不難看出此行程式碼最重要的map()方法的使用。那麼,接下來,我們來介紹map()方法。 m

學渣學pythonmap函式

map()函式是Python內建的高階函式,它接收一個函式f和一個list,並把函式f作用在list的每個元素上。從而得到一個f處理過的新的list返回。下面舉個栗子: 1. 例1 list [1, 2, 3, 4, 5, 6, 7] 我們要得到list的每個元素都平方後的,新的li

python sorted函式高階用法

1、入門 a = [20, 5, 6, 7, 8, 1] res1 = sorted(a) # 正序排序 res2 = sorted(a, reverse=True) # 逆序排序 res3 = sorted(a, key=lambda item: -item) # 逆序排序 pr

python中的print輸出函式用法總結

【時間】2018.10.12 【題目】python中的print輸出函式用法總結   一、直接輸出 無論什麼型別,數值,布林,列表,字典...都可以直接輸出,或者先賦值給變數,再輸出。     二、格式化輸出 下面是《Python基