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()函式是如何工作的。
從上圖可以看出,函式func函式會作用於seq中的每個元素,得到func(seq[n])組成的列表。下面舉得例子來幫助我們更好的理解這個工作過程。
#使用lambda
>>> print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]
#使用列表解析
>>> print [x % 2 for x in range(7)]
[0, 1, 0, 1, 0, 1, 0]
一個seq時,可以使用filter()函式代替,那什麼情況不能代替呢?
2、當seq多於一個時,map可以並行(注意是並行)地對每個seq執行如下圖所示的過程:
從圖可以看出,每個seq的同一位置的元素同時傳入一個多元的func函式之後,得到一個返回值,並將這個返回值存放在一個列表中。下面我們看一個有多個seq的例子:
>>> print map(lambda x , y : x ** y, [2,4,6],[3,2,1])
[8, 16, 6]
如果上面我們不使用map函式,就只能使用for迴圈,依次對每個位置的元素呼叫該函式去執行。還可以使返回值是一個元組。如:
>>> print map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,1])
[(8, 5), (16, 6), (6, 7)]
當func函式時None時,這就同zip()函數了,並且zip()開始取代這個了,目的是將多個列表相同位置的元素歸併到一個元組。如:
>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]
需要注意的是:
map無法處理seq長度不一致、對應位置運算元型別不一致的情況,這兩種情況都會報型別錯誤。如下圖:
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的第一個引
python中map()函式的用法介紹
引入map()方法,首先是從一行程式碼切入的。 程式碼如下: dicts = list(map(lambda x : x.to_dict(), user)) 大家能看懂嗎? 不難看出此行程式碼最重要的map()方法的使用。那麼,接下來,我們來介紹map()方法。 m
學渣學python之map函式
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基