列表解析:l = ['aaa','bbb','ccc'] #將l內的元素全部變為大寫...
l =
for i in l:
print(l)
#使用列表解析:
l = [i.upper() for i in l]
print(l)
#for之後可以跟個if判斷語句(但不能有else)
l = ['aaa','bbb','ccc']
l = [i.upper() for i in l if i.endswith('c')]
print(l)
字典生成式:l1 = ['name','age','***']
l2 = ['bob',23,'men']
d =
print(d)
--->
#d =
-->生成的是集合
匿名函式:def 函式名() --->建立的是有名函式,使函式名指向函式體的記憶體位址,因此可以重複呼叫,而匿名函式,顧名思義函式體是沒有與變數名存在繫結關係的
注:1.給匿名函式賦名是沒有意義的
2.匿名函式的引數規則與作用域與有名函式一致
3.匿名函式的函式體應該是乙個表示式,並且該表示式必須有返回值
匿名函式通常與內建函式結合使用:
1.與max():取出乙個可迭代物件的最大值
2.min()的用法與max()類似:取出乙個可迭代物件的最小值d =
print(max(d))
#---->max首先實現乙個類似for迴圈的功能(迭代器協議),遍歷字典的key,按照字串的原則的比較大小
def func(key):
return d[key]
print(max(d,key=func))
#--->實現原理是,max對第一引數(可迭代物件)進行for迴圈,將得到的值作為引數傳給函式func,然後以函式func的返回值作為比較依據,
#而func在這裡僅僅是提供給內建函式max()使用,所以完全可以將其變成匿名函式
print(max(d,key=lambda x:d[x]))
3.map():對映:將後面的可迭代物件按照前面的規則對映成新的物件---->在python2中得到的是乙個列表,3中則是乙個迭代器
4:reduce():將多值合併成乙個列表#python2
> names = ('1','2','3','4')
>>> res=(map(lambda x:x+'a',names))
>>> print res
['1a', '2a', '3a', '4a']
#python3
names = ('1','2','3','4')
res=(map(lambda x:x+'a',names))
print(res)
print(iter(res) is res)
--->
true
5:filter() ---->過濾出為true的 --->python3中生成的是迭代器from functools import reduce
res = reduce(lambda x,y:x+y,range(100))
print(res)
--->
4950
z = ['love','your']
res1 = reduce(lambda x,y:x+' '+y,z,'i')
print(res1)
--->
i love your
#第三個引數為初始值,如果不指定,則在第二個引數中拿出乙個作為初始值
l = [1,2,3,4,5,6,7]
res = filter(lambda x:x>3,l)
print(res)
print(list(res))
--->過濾出大於3的數字
[4, 5, 6, 7]
d =
print(list(filter(lambda key:d[key]>30,d)))
--->過濾出大於30歲的人
'b0b'
Python 列表 字典 生成式
列表生成式 格式 expression for i in 序列 if 題目1 生成乙個列表,列表元素分別為 12,22,32,n2 一般方法 for i in range 1,9 print li 結果 1,4,9,16,25,36,49,64 列表生成方式 print i 2 for i in r...
python生成式 列表 字典 集合
python的3類生成式 列表生成式 字典生成式 集合生成式 1 python列表生成式 my data 1,2,3 4,5,6 7,8,9 print my data s my data rows to keep row for row in my data if row 2 5 print ro...
python 列表生成式,字典生成式
生成乙個列表,列表元素分別為 1 1,2 2.9 9 import math li for i in range 1,10 print li print i i for i in range 1,10 print i i for i in range 1,10 if i 2 0 找出1 10之間的所...