溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python之列表推導(dǎo)式的用法

發(fā)布時(shí)間:2020-10-02 17:25:29 來(lái)源:腳本之家 閱讀:145 作者:思綢之路 欄目:開(kāi)發(fā)技術(shù)

1. 定義

用一行構(gòu)建代碼

例題

# 構(gòu)建一個(gè)1-100的列表
l1 = [i for i in range(1,101)]
print(l1)

# 輸出結(jié)果
[1,2,3,4,5,6,...100]

2. 兩種構(gòu)建方式

2.1 循環(huán)模式: [變量(加工后的變量) for 變量 in iterable]

例題

1. 將10以?xún)?nèi)所有整數(shù)寫(xiě)入列表

print([i for i in range(1,11)])
# 輸出結(jié)果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2. 將10以?xún)?nèi)所有整數(shù)的平方寫(xiě)入列表。

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

3. 100以?xún)?nèi)所有的偶數(shù)寫(xiě)入列表.

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

4. 從python1期到python100期寫(xiě)入列表list

print([f'python{i}期' for i in range(1, 101)])

練習(xí)題

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

l2 = [i for i in range(1,101) if i % 2 == 0]
print(l2)

l3 = [f'python{i}期' for i in range(1,101)]

print(l3)

2.2 篩選模式: [變量(加工后的變量) for 變量 in iterable if 條件] 增加一個(gè)判斷

例題

# 構(gòu)建一個(gè)列表,要求元素大于4
print([i for i in range(11) if i > 4])

# 輸出結(jié)果:
[5, 6, 7, 8, 9, 10]

練習(xí)題

1. 10以?xún)?nèi)大于4的數(shù)

# print([i for i in range(11) if i > 4])
print([i for i in range(1,31) if i % 3 == 0])

2. 30以?xún)?nèi)可以被三整除的數(shù)。

# 過(guò)濾掉長(zhǎng)度小于3的字符串列表,并將剩下的轉(zhuǎn)換成大寫(xiě)字母
l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']

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

3. 找到嵌套列表中名字含有兩個(gè)‘e'的所有名字(有難度)

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
     ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
# 方法一: 普通方法
l4 = []
for i in names:
  for j in i:
    if j.count('e') >= 2:
      l4.append(j)
print(l4)

# 方法二: 列表推導(dǎo)式方法
print([j for i in names for j in i if j.count('e') >= 2 ])

3. 列表推導(dǎo)式的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
​ 簡(jiǎn)單,快捷,裝b

缺點(diǎn):
​ 可讀性不高,不好排錯(cuò)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI