python计算平方用map函数_python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)...
1、用我們之前學(xué)過的求一下平方(只有一個(gè)列表)
#求平方
num=[1,5,6,2,7,8]
a=[]for n innum:
a.append(n**2)print(a)
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[1, 25, 36, 4, 49, 64]
2、寫成函數(shù),這樣在有多個(gè)列表的時(shí)候只要調(diào)用一下這個(gè)函數(shù)就可以了
num=[1,5,6,2,7,8]
num_1=[22,333,11,55,66]defmap_atest(array):
ret=[]for n inarray:
ret.append(n**2)returnret
ret=map_atest(num)
ret1=map_atest(num_1)print(ret)print(ret1)
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[1, 25, 36, 4, 49, 64]
[484, 110889, 121, 3025, 4356]
3、現(xiàn)在需求又變了。要求列表里面的每個(gè)數(shù)自增加1
num=[1,5,6,2,7,8]
num_1=[22,333,11,55,66]def add_one(x):#1.定義一個(gè)自增1的函數(shù)
return x+1
def add_reduce_one(x):#2.定義一個(gè)自減1的函數(shù)
return x-1
def map_atest(func,array):#3.定義一個(gè)函數(shù),需要穿2個(gè)參數(shù)
ret = []#4.1定義一個(gè)空列表
for n in array:#這個(gè)array是num傳進(jìn)來的列表,做for循環(huán)
res=func(n)#func就是add_one這個(gè)函數(shù),傳的值是n,就把n自增加了1 add_one(n),然后賦值給變量
ret.append(res)returnretprint(map_atest(add_one,num))#4. 傳2個(gè)參數(shù)add_one num 這2個(gè)都是函數(shù)
print(map_atest(add_one,num_1))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[2, 6, 7, 3, 8, 9]
[23, 334, 12, 56, 67]
我們把自增1和自減1都寫成了函數(shù),這樣在下面一調(diào)用函數(shù),把列表傳進(jìn)去就可以了
num=[1,5,6,2,7,8]
num_1=[22,333,11,55,66]def add_one(x):#1.定義一個(gè)自增1的函數(shù)
return x+1
def add_reduce_one(x):#2.定義一個(gè)自減1的函數(shù)
return x-1
def map_atest(func,array):#3.定義一個(gè)函數(shù),需要穿2個(gè)參數(shù)
ret = []#4.1定義一個(gè)空列表
for n in array:#這個(gè)array是num傳進(jìn)來的列表,做for循環(huán)
res=func(n)#func就是add_one這個(gè)函數(shù),傳的值是n,就把n自增加了1 add_one(n),然后賦值給變量
ret.append(res)returnretprint(map_atest(add_reduce_one,num))#4. 傳2個(gè)參數(shù)add_reduceone num 這2個(gè)都是函數(shù)
print(map_atest(add_reduce_one,num_1))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[0,4, 5, 1, 6, 7]
[21, 332, 10, 54, 65]
4、在添加一個(gè)求平方的函數(shù)
這樣子看起來很靈活了,還不夠好
num=[1,5,6,2,7,8]
num_1=[22,333,11,55,66]def add_one(x):#1.定義一個(gè)自增1的函數(shù)
return x+1
def reduce_one(x):#2.定義一個(gè)自減1的函數(shù)
return x-1
defpf_one(x):return x**2
def map_atest(func,array):#3.定義一個(gè)函數(shù),需要穿2個(gè)參數(shù)
ret = []#4.1定義一個(gè)空列表
for n in array:#這個(gè)array是num傳進(jìn)來的列表,做for循環(huán)
res=func(n)#func就是add_one這個(gè)函數(shù),傳的值是n,就把n自增加了1 add_one(n),然后賦值給變量
ret.append(res)returnretprint(map_atest(add_one,num))#4. 傳2個(gè)參數(shù)add_one num 這2個(gè)都是函數(shù)
print(map_atest(reduce_one,num_1))print(map_atest(pf_one,num_1))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[2, 6, 7, 3, 8, 9]
[21, 332, 10, 54, 65]
[484, 110889, 121, 3025, 4356]
5、在上面的基礎(chǔ)上,在進(jìn)行精簡,剛剛學(xué)了匿名函數(shù),現(xiàn)在我們就可以用上了
def add_one(x):#1.定義一個(gè)自增1的函數(shù)
return x+1這個(gè)函數(shù)就等于lambda x:x+1
def add_reduce_one(x):#2.定義一個(gè)自減1的函數(shù)
return x-1這個(gè)函數(shù)等于lambda x:x-1
defpf_one(x):return x**2這個(gè)函數(shù)等于lambda x:x**2
然后最后精簡完成就是下面這樣了,用了3個(gè)lambda代替了3個(gè)函數(shù)。代碼更少了
num=[1,5,6,2,7,8]
num_1=[22,333,11,55,66]def map_atest(func,array):#3.定義一個(gè)函數(shù),需要穿2個(gè)參數(shù)
ret = []#4.1定義一個(gè)空列表
for n in array:#這個(gè)array是num傳進(jìn)來的列表,做for循環(huán)
res=func(n)#func就是add_one這個(gè)函數(shù),傳的值是n,就把n自增加了1 add_one(n),然后賦值給變量
ret.append(res)returnretprint(map_atest(lambda x:x+1,num))#4. 傳2個(gè)參數(shù)add_one num 這2個(gè)都是函數(shù)
print(map_atest(lambda x:x-1,num_1))print(map_atest(lambda x:x**2,num_1))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[2, 6, 7, 3, 8, 9]
[21, 332, 10, 54, 65]
[484, 110889, 121, 3025, 4356]
6、我們來看下map函數(shù)的用法,打印出來的是一個(gè)內(nèi)存地址
#我們看下系統(tǒng)內(nèi)置函數(shù)map
print (map(lambda x:x+1,num))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
map處理的一個(gè)結(jié)果是一個(gè)迭代器,只能迭代一次
rec=map(lambda x:x+1,num)for n in(rec):print(n)
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[2, 6, 7, 3, 8, 9]2
6
7
3
8
9
rec=map(lambda x:x+1,num)#for n in (rec):#print (n)
print(list(rec))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[2, 6, 7, 3, 8, 9]
[2, 6, 7, 3, 8, 9]
7、總結(jié)map函數(shù)的用法,需要傳2個(gè)參數(shù),在python內(nèi)部,就相當(dāng)于一個(gè)for循環(huán),把每次遍歷的那個(gè)數(shù)字交給這個(gè)處理方法
map(一個(gè)處理方法,一個(gè)可迭代對象)
8、map后面不一定用lambda,只用自定義函數(shù)也可以的
num=[1,5,6,2,7,8]def add_one(x):#1.定義一個(gè)自增1的函數(shù)
return x+1
print(list(map(add_one,num)))
C:python35python3.exe D:/pyproject/day14函數(shù)/map函數(shù).py
[2, 6, 7, 3, 8, 9]
9、map函數(shù)處理字符串,把字符串都變成大寫
msg="gouguqoi"list(map(lambda x:x.upper(),msg))
上面的代碼是這樣形成的
第一步
msg="gouguqoi"map(lambdax:x.upper(),msg)
第二步
msg="gouguqoi"list(map(lambdax:x.upper(),msg))
第三步
msg="gouguqoi"
print (list(map(lambda x:x.upper(),msg)))
10、將列表里面的元素變成字符串的類型
num=[1,5,6,2,7,8]print(list(map(lambdax:str(x),num)))print(list(map(str,num)))
['1', '5', '6', '2', '7', '8']
['1', '5', '6', '2', '7', '8']
map總結(jié):
處理序列中的每個(gè)元素,得到的結(jié)果是一個(gè)“列表”(迭代器),該“列表”個(gè)數(shù)已位置與原來一樣,然后把每個(gè)元素依次交給前面的這個(gè)處理方法,最后得到一個(gè)列表的結(jié)果
總結(jié)
以上是生活随笔為你收集整理的python计算平方用map函数_python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通话录音_谁说苹果手机不能通话录音?四种
- 下一篇: android 配置aspect_And