python3 map,filter和列表推導式

2022-06-09 19:18:10 字數 1316 閱讀 9791

num_list = [11,2,-33,10,7,3,5,43]

獲取num_list大於5的元素,並返回列表

用lambda表示式實現:

# 在python2 中 filter返回的是乙個列表,可以用for遍歷

# 在python3 中 filter返回的是乙個filter物件,可以用for遍歷,也可以用list轉換為列表

list2 = list(filter(lambda x: x>5, num_list))

print(list2) #輸出:[11, 10, 7, 43]

用列表推導式實現:

list2 = [x for x in num_list if x >5]

print(list2) #輸出:[11, 10, 7, 43]

給num_list的所有元素都乘以2,並返回列表

用lambda表示式實現:

# 在python2 中 map返回的是乙個列表,可以用for遍歷

# 在python3 中 map返回的是乙個map物件,可以用for遍歷,也可以用list轉換為列表

list3 = list(map(lambda x: x*2, num_list))

print(list3) #輸出:[22, 4, -66, 20, 14, 6, 10, 86]

用列表推導式實現:

list3 =[x*2 for x in num_list]

print(list3) #輸出:[22, 4, -66, 20, 14, 6, 10, 86]

引入:from functools import reduce

計算num_list所有元素之和

list4 = reduce(lambda x,y: x+y, num_list)

print(list4) #輸出 :48

獲取num_list列表中大於0的元素並執行平方操作

squared_list = [x**2 for x in num_list if x >0]

print(squared_list)  #輸出 :[121, 4, 100, 49, 9, 25, 1849]

binfo = ['lao','wang','python']

content = " ".join(binfo)

print(content)  #輸出 :lao wang python

content = ";".join(binfo)

print(content) #輸出 :lao;wang;python

python3 切片 python3 切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...

python3安裝 Python3的安裝

1.anaconda安裝 2.安裝包安裝 3.linux下的命令列安裝 centos red hat 1 sudo yum install y sudo yum update3 sudo yum install y python35u python35u libs python35u devel p...

python3異常例項 Python3 錯誤和異常

錯誤和異常 程式執行時有兩種可以分辨的錯誤 syntax error 和 exception 按中文來說,就是語法錯誤和異常。語法錯誤 語法錯誤也就是解析錯誤,是我們最優可能遇到的錯誤。while true print hello world file line 1,in?while true pr...