map()函數 map()是 Python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。 例如,對於list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每個元素都作平方,就可以用map()函數: 因此,我們只需要傳入函數f(x)=x*x,就可以利用map()函數完成這個計算:
def f(x):
return x*x
a = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
for i in a:
print(i)
輸出結果:
1
4
9
16
25
36
49
64
81
注意:map()函數不改變原有的 list,而是返回一個新的 list。 利用map()函數,可以把一個 list 轉換為另一個 list,只需要傳入轉換函數。 由於list包含的元素可以是任何類型,因此,map() 不僅僅可以處理只包含數值的 list,事實上它可以處理包含任意類型的 list,只要傳入的函數f可以處理這種數據類型。
import sys
input_file = sys.argv[1]
output_file = sys.argv[2]
with open(input_file, 'r', newline='') as filereader:
with open(output_file, 'w', newline='') as filewriter:
header = filereader.readline()
header = header.strip()
header_list = header.split(',')
print(header_list)
filewriter.write(','.join(map(str,header_list))+'\n') #這里邊map依然映射為一個新的列表,因為header_list是一個列表且這個列表的值是數字,所以要通過str轉置一下。也就是說,map(方法名,列表,[列表2]),這個方法多種多樣。
for row in filereader:
row = row.strip()
row_list = row.split(',')
print(row_list)
filewriter.write(','.join(map(str,row_list))+'\n')
在Python2中map函數會返回一個list列表,但在Python3中,返回<map object at 0x********>
>>> def f(x,y):
... return{x:y}
...
>>> a = [1,2]
>>> b = ['a','b']
>>> list(map(f,a,b))#若無外面的list,則返回<map object at 0x********>
[{1: 'a'}, {2: 'b'}]
---------------------
作者:夏雨淋河
來源:CSDN
原文:https://blog.csdn.net/zhangchuang601/article/details/79353797
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
map()函數是python內置的高階函數,對傳入的list的每一個元素進行映射,返回一個新的映射之后的list