python对列表元素执行函数操作
天蓬老师
天蓬老师 2017-04-17 17:02:51
0
2
481
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
洪涛

lambda 只能定義一個用於計算的表達式, 你還需要map,或者列表推導來調用這個lambda:

map函數有兩個參數, 第一個參數為一個函數(lambda或命名函數), 第二個參數為一個可迭代物件(list,tuple), map將每次取一個元素傳遞給lambda函數,並取回結果;map将每次取一个元素传递给lambda函数,并取回结果;

# lambda实现一个没有名字的函数

# lambda 参数名 : 处理参数的表达式
lambda x: x if str(x).isdigit() else str(x).replace('网站', 'xxx网站xxx')

鉴于你既然有多个需要处理的key, 而lambda后面的语句必须是一个可以直接返回具体值的简单表达式, lambda不再适合这种场景, 可以直接构造函数

demolist = [1,'这是一个问答网站','没错,网站里高手如云。']

key = {'网站':'Net','高手':"Master"}
def trans(each):
    global key
    for k in key:
        if type(each) is str and k in each:
            each = each.replace(k, key[k])
    return each

demolist = map(trans, demolist)

for each in demolist:
    print each
λ  ~/  python x.py 
1
这是一个问答Net
没错,Net里Master如云。
鑑於你既然有多個需要處理的key, 而lambda後面的語句必須是一個可以直接返回具體值的簡單表達式, lambda不再適合這種場景, 可以直接建構子:

rrreee

樓上的re模組如果你比較熟悉的話也可以使用, 不過那就是另外一個主題了.🎜
Ty80

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!