列表推導式

2022-09-10 20:39:19 字數 1551 閱讀 5338

#

列表推導式

#>>>用一行**構建乙個比較複雜有規律的列表

print([i for i in range(100)])

#列表推導式分為兩類

#一.迴圈模式:[變數(加工後的變數) for 變數 in iterable(可迭代物件)]#習題

#1.將10以內所有的整數的平方寫入列表

print([i**2 for i in range(1, 11)])

#2.100以內所有的偶數寫入列表

print([i for i in range(0, 101, 2)])

#3.從python1期到python100期寫入列表lst

lst = [f'

python期

'for i in range(1, 101)]

print

(lst)

#二.篩選模式:[變數(加工後的變數) for 變數 in iterable(可迭代物件) if 條件]#習題

#1.30以內能被3整除的數

l1 = [i for i in range(1, 31) if i % 3 ==0]

print

(l1)

#2.過濾掉長度小於3的字串列表,並將剩下的轉換成大寫字母

l2 = ['

barry

', '

ab', '

alex

', '

wusir

', 'xo'

]print( [i.upper() for i in l2 if len(i) >= 3])

#3.找到巢狀列表中名字含有兩個'e'的所有名字,變成大寫並儲存到列表中

names = [['

tom', '

billy

', '

jefferson

', '

andrew

', '

wesley

', '

steven

', '

joe'

], [

'alice

', '

jill

', '

ana', '

wendy

', '

jennifer

', '

sherry

', '

eva'

]]"""

正常思路

lst =

for ls in names:

for name in ls:

if name.count('e') == 2:

print(lst)

"""lst = [name.upper() for ls in names for name in ls if name.count('

e') == 2]

print(lst)

列表推導式只能構建比較複雜並且有規律的列表。超過三層迴圈才能構建成功的,就不建議使用列表推導式

列表推導式與生成器表示式的區別:

寫法: 和 ()

列表推導式

1.先判斷再賦值 a 5 b 6 c a b print c false 列表組合 list1 1,2,3 list2 4,5,6 list3 list1 list2 print list3 一行 方括號中是對字串的切片 後邊有個or 為從左到右,取第乙個為真的值,如果or左側為非空字串,就是用or...

列表推導式

0 9的平方,輸出為列表 list1 x 2 for x in range 10 range 10 是0 9 print list1 結果為 0,1,4,9,16,25,36,49,64,81 使用for迴圈完成 0 9的平方,輸出為列表 list1 for i in range 10 print ...

列表推導式

expr for val in collection if condition 滿足condition條件就把val加入到列表中 這個列表推導式等價於下面這個多行 生成的a陣列就和這個列表推導式生成的東西一模一樣 a for val in collection if condition 備註 利用列...