作為python的初學者,在做題過程中遇到了有關map函式的問題,在查閱、了解、學習後,對此有了明確的認識。
本題是輸入兩個整數,可求出兩數之間的所有素數:
x,y=
map(
int,
input()
.split(
',')
)for i in
range
(x,y+1)
:for j in
range(2
,int
(i**(1
/2))
+1):
if i % j==0:
break
else
:print
(i)
由於是初學者,對於map函式並不了解。
以下舉幾個例子,來藉此了解一下map函式:
x=[1
,2,3
,4]def
f(i)
:return i*i
y=map
(f,x)
print
(list
(y))
其中
y=
map(f,x)
可以將函式f(i)與x看作是對映,而map函式可以理解為乙個將x與f(i)聯絡起來形成對映的函式。
但是切勿寫成這種形式,否則編譯器會報錯:
y=
map(f(i)
,x)
因為在這裡已經將x重的的值付給了本身它的變數i,而它本身的變數並沒有定義,所以這裡只用到他的函式關係,只用寫成y=map(f(i),x)
map 的輸入元素的列表 的關係是一一對應的
test_x =[1
,2,3
,4,5
,6,7
,8,9
] test_y =[1
,2,3
,4,5
,6]
test_z =[1
,2,3
]
r =map
(lambda x,y,z:x+y+z,test_x,test_y,test_z)
print
(list
(r))
y=
map(f,x)
print
(y)##輸出結果:
<
mapobject at 0x7fb19d194790
>
process finished with exit code 0
而宣告資料型別後,就會顯示相應的value:
y=
map(f,x)
print
(list
(y))
##輸出結果:[1
,4,9
,16]process finished with exit code 0
以此**為例:
x=[1
,2,3
,4]def
f(i)
:return i*i
y=map
(f,x)
print
(list
(y))
其中
def
f(i)
:return i*i
y=map
(f,x)
在使用map函式時,是需要使用已定義好的函式f(i)的,而map中的lambda函式,無需提前定義函式,以上述**為例,可以使用lambda函式寫成:
x=[1
,2,3
,4]y=
map(
lambda i:i*i,x)
print
(list
(y))
有些小夥伴可能會有疑問,裡面的i:ii是什麼?這個i就是隱藏函式的自變數,ii就是函式的表示式,而逗號後的x就是將列表x中的元素作為對變數所要賦的值,可以理解為是乙個定義域。
以上就是對於pytho中的map函式的基本用法以及注意事項所做的略微總結,希望對一些初學者有所幫助。
python學習之map函式和lambda函式
map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。map function,iterable,在map中,不會對itetable進行修改 def fun x return 2 x t ...
Python內建函式之map 函式
1 介紹 map 函式會根據提供的 函式名 引數對提供的乙個或多個 序列名 引數做對映,即 函式名 引數會逐一對 序列名 引數內的所有元素進行處理,並返回處理後的新列表給 序列名 使用方法 map 函式名 序列名 注意 序列名 引數允許多個,之間用逗號隔開。2 返回值 python2.x的返回值是列...
Python之Map高階函式
map 函式 map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。例如,對於list 1,2,3,4,5,6,7,8,9 如果希望把list的每個元素都作平方,就可以用map 函式 因此...