mapfilterreduce

# map
# map  : what why how
# http://devdocs.io/python~3.6/library/functions#map  官方文檔
# 返回一個迭代器,該迭代器將函數(shù)應(yīng)用到可迭代的每一項,從而產(chǎn)生結(jié)果
# 不用for循環(huán),就能將序列中的數(shù)據(jù)一一映射到給定的處理函數(shù),快速對一個序列的數(shù)據(jù)進(jìn)行各種操作
# 是代碼更簡單
map?
"""Init signature: map(self, /, *args, **kwargs)
Docstring:     
map(func, *iterables) --> map object
函數(shù)用--------------------> 返回的map對象
"""
num = [1,3,5,7,9]
# for 循環(huán)
new_num = []
for i in num:
    y = i + 1
    new_num.append(y)
print(new_num)
[2, 4, 6, 8, 10]
# map
def add(x):
    return(x+1)

map(add, num)
<map at 0x14d150489e8>
list(map(add, num))
[2, 4, 6, 8, 10]
# 字符串處理
str_list = ['lilei', 'coop', 'hanmei']

def change(s:str):
    return s.capitalize()

list(map(change, str_list))
['Lilei', 'Coop', 'Hanmei']
# filter
# 從可迭代的元素中構(gòu)造一個迭代器,函數(shù)返回true,iterable可以是一個序列,一個支持迭代的容器
# 或者一個迭代器,如果函數(shù)為None,則假定表示函數(shù)為false,即false的所有元素都被刪除
# 不用for循環(huán),就能將序列中數(shù)據(jù)一一映射到給定的處理函數(shù),函數(shù)中添加了真假判斷,True則返回
# 相應(yīng)的數(shù)據(jù),最終得到篩選后的序列,使得代碼更簡單
my_list = [11,22,33,44,55,343,66,77]
new_list = []
for i in my_list:
    if 20 < i < 60:
        new_list.append(i)
print(new_list)
[22, 33, 44, 55]
# filter   首先是構(gòu)造一個過濾田間的函數(shù),然后才能使用filter
def choose(x):
    if 20 < x < 50:
        return True

def choose1(y):
    return 20< y < 50

filter(choose, my_list)
list(filter(choose, my_list))
[22, 33, 44]
# 字符串處理
str_list = ['lilei','coop','coop2','hanmemei','china']

import re

def coop(s:str):
    return re.search('coop', s)
filter(coop, str_list)
list(filter(coop, str_list))
['coop', 'coop2']
# reduce  處理數(shù)字列表的連乘, 累加
# 將兩個
from functools import reduce
num = [1,3,5,7,9]

sum = 0
for i in num:
    sum += i
print(sum)
25
sum = 1
for i in num:
    sum *= i
print(sum)
945
# 定義函數(shù)
def sum(x, y):
    return x + y
def cheng(x, y):
    return x * y
reduce(sum, num)
25
reduce(cheng, num)
945

本文題目:mapfilterreduce
網(wǎng)頁網(wǎng)址:http://muchs.cn/article14/jejjde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)營銷型網(wǎng)站建設(shè)、商城網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營