#列表推導式
#>>>用一行**構建乙個比較複雜有規律的列表
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)]
(lst)
#二.篩選模式:[變數(加工後的變數) for 變數 in iterable(可迭代物件) if 條件]#習題
#1.30以內能被3整除的數
l1 = [i for i in range(1, 31) if i % 3 ==0]
(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 備註 利用列...