lambda函数+map函数的结合使用 list(map(lambda x: list(x)[0], X))
生活随笔
收集整理的這篇文章主要介紹了
lambda函数+map函数的结合使用 list(map(lambda x: list(x)[0], X))
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Q1:什么是lambda函數?怎么定義?有什么作用?
知識點:lambda
解析:lambda叫做匿名函數,是一種不需要提前對函數進行定義再使用的情況下就可以使用的函數
1
定義規則:冒號的左邊是原函數的參數,右邊是原函數的返回值。# 常規定義,需要提前定義函數
>>> def func(x):
... return x+1
...
>>> func(1)
2
>>> # 使用lambda表達式,一步實現。
# 冒號左邊是原函數參數;
# 冒號右邊是原函數返回值;
>>> a = lambda x:x+1
>>> a(1)
2
>>> 作用:對于一些比較抽象且只調用一兩次的函數,使用lambda可以省略函數定義的步驟,減少代碼量,使用代碼整體更加精簡。#定義一個filter函數,過濾函數中的偶數,得出10以內的奇數。
#余數得出等于1就是奇數。
>>> def add(x):
... return x%2==1
...
>>> list(filter(add,range(10)))
[1, 3, 5, 7, 9]
>>> #使用lambda定義,可以減少函數定義的步驟
>>> list(filter(lambda x:x%2==1, range(10)))
[1, 3, 5, 7, 9]
>>> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
擴展知識:計算偶數#余數得出等于0,就是偶數
>>> list(filter(lambda x:x%2==0, range(10)))
[0, 2, 4, 6, 8]
>>>
1
2
3
4
map函數如何使用?>>> help(map)
class map(object)| map(func, *iterables) --> map object
#從幫助信息可以得出,map函數第一部分是一個函數操作,第二部分是一個可迭代的對象,可以是元組,列表,字典等
1
2
3
4
map函數例子:我們有一個元組列表[(‘a’,1),(‘b’,2),(‘c’,3),(‘d’,4)],我想在想把里邊每個元組的第一項,即字母項提取出來構成一個新的列表。>>> vartuple = [('a',1),('b',2),('c',3),('d',4)]
>>> list(map(lambda x:x[0],vartuple))
['a', 'b', 'c', 'd']
#Python版本: 3.3.4
#1.常規方法
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]
>>> def square(x):
return x**2>>> list(map(square,lst)) #Python2.x使用map(square,lst)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]#2.使用lambda函數
>>> list(map(lambda x:x**2,lst)) #Python2.x使用map(lambda x:x**2,lst)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]>>> [(lambda x:x**2)(x) for x in lst]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]#map函數除了作用于數字列表外,還可以作用于字符串和元組。
#例如:
>>> list(map(ord,'abcdef'))
[97, 98, 99, 100, 101, 102]#當傳入多個可迭代對象時,且它們元素長度不一致時,生成的迭代器只到最短長度
>>> list(map(lambda x,y:x+y,'abc','de'))
['ad', 'be']
總結
以上是生活随笔為你收集整理的lambda函数+map函数的结合使用 list(map(lambda x: list(x)[0], X))的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 量化投资交易 vn.py
- 下一篇: 基于 CNN 的中文对话情感分析