最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

effective python讀書筆記——列表的推導(dǎo)式

2021-12-06 17:15 作者:與時(shí)代脫軌的級(jí)數(shù)  | 我要投稿

列表推導(dǎo)式來代替map函數(shù)來在原來列表基礎(chǔ)上構(gòu)造新列表更加簡潔

a=[1,2,2,2,3,4,5]

#運(yùn)用map函數(shù)構(gòu)造列表

map_method=list(map(lambda x:x**2,a))

#列表推導(dǎo)法

list_method=[x**2 for x in a]

#列表推導(dǎo)法可過濾原列表

even_number_list=[x**2 for x in a if x%2==0]#只要偶數(shù)

#map函數(shù)也可以通過filter方法來實(shí)現(xiàn),略難

map_even_number=list(map(lambda x:x**2,filter(lambda x:x%2==0,a)))

#字典推導(dǎo)

dictionary_method={x:x**2 for x in a if x%2==0}#{:}

#集合推導(dǎo)

set_method={x**2 for x in a if x%2==0}#{}

#而用map方法來實(shí)現(xiàn),就更加復(fù)雜了

map_dictionary=dict(map(lambda x:(x,x**2),filter(lambda x:x%2==0,a)))

map_set=set(map(lambda x:(x,x**2),filter(lambda x:x%2==0,a)))


print(f'map_method :{map_method}')

print(f'list_method :{list_method}')

print(f'even_number_list :{even_number_list}')

print(f'map_even_number :{map_even_number}')

print(f'dictionary_method :{dictionary_method}')

print(f'set_method :{set_method}')#集合中的元素是無序的,同樣的元素只出現(xiàn)一次

print(f'map_set :{map_set}')

print(f'map_dictionary :{map_dictionary}')

運(yùn)行結(jié)果

關(guān)于表達(dá)式的嵌套:

matrix=[[1,2,3],[4,5,6],[7,8,9]]#一個(gè)矩陣

#用列表表達(dá)式轉(zhuǎn)化成列表

turn_to_list=[x for row in matrix for x in row]

#也可以對(duì)原二維矩陣進(jìn)行數(shù)值轉(zhuǎn)化

square_list=[[x**2 for x in row ] for row in matrix]#對(duì)每個(gè)數(shù)進(jìn)行平方

#但如果是三維矩陣的話,用此方法就顯得比較復(fù)雜

matrix_3=[[[1,2],[3,4]],[[5,6],[7,8]]]

turn_to_list3=[x for sublist1 in matrix_3 for sublist2 in sublist1 for x in sublist2]

#用正常的for循環(huán)就比較清晰

for_method=[]

for sublist1 in matrix_3:

? ? for sublist2 in sublist1:

? ? ? ? for_method.extend(sublist2)

? ? ? ? '''

? ? ? ? for i in sublist2:

? ? ? ? ? ? for_method.append(i)

? ? ? ? '''


print(f'turn_to_list :{turn_to_list}')

print(f'square_list :{square_list}')

print(f'turn_to_list3 :{turn_to_list3}')

print(f'for_method :{for_method}')

運(yùn)行結(jié)果

關(guān)于if條件的使用:

#同一層循環(huán)內(nèi)的if語句默認(rèn)為and關(guān)系

a=[1,2,3,4,5]

b=[x for x in a if x<4 if x%2!=0]

c=[x for x in a if x<4 and x%2!=0]

#b,c兩寫法等價(jià)

print(f'b : ')

print(f'c : {c}')

#每一層的子表達(dá)式也都可以有if條件

matrix=[[1,2,3],[4,5,6],[7,8,9]]

#篩選出各行元素和大于10的,并只保留整除3的項(xiàng)

selected=[[x for x in row if x%3==0]\

? ? ? ? for row in matrix if sum(row)>10]

print(f'selected :{selected}')

運(yùn)行結(jié)果



effective python讀書筆記——列表的推導(dǎo)式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
婺源县| 长子县| 安丘市| 涿鹿县| 望谟县| 许昌县| 资讯 | 山丹县| 大庆市| 九台市| 个旧市| 喜德县| 平舆县| 盘山县| 和政县| 清镇市| 芜湖县| 清苑县| 延寿县| 张家界市| 浪卡子县| 东莞市| 鄱阳县| 页游| 福海县| 新野县| 五原县| 定陶县| 沁水县| 云林县| 偃师市| 福鼎市| 弥渡县| 拜城县| 闽侯县| 东莞市| 秦安县| 高邑县| 宜阳县| 乌鲁木齐市| 田东县|