国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

90. Python列表推導式

這篇具有很好參考價值的文章主要介紹了90. Python列表推導式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

90. Python列表推導式

1. 知識回顧

1.1 append函數知識回顧

29.append函數向列表添加元素

append [??pend]增加,附加。

【語法】

列表名.append(要增加的元素)

【代碼示例】

# 創(chuàng)建列表 name_list
name_list = ['張三']

# 用 append() 給列表 name_list 添加一個元素 '王五'
# 列表名.append(要增加的元素)
name_list.append('王五')

# 輸出 name_list 列表
print(name_list)

【終端輸出】

['張三', '王五']

1.2 range函數知識回顧

42. range函數—生成器函數

range[re?nd?]:按一定的次數排列。

【語法】

range(開始字符,結束字符,步長)

【參數說明】

  1. 參數start:表示起始的整數(包含該整數),如果不指定,則默認為0。

  2. 參數end:表示結束的整數(不包含該整數),不能省略。

  3. 參數step:表示步長,即兩個數之間的間隔。如果省略,則默認為1,當省略該步長時,最后一個英文逗號也可以省略。

【重點提示】

切片和range函數都包括開始字符,不包括結束字符,簡單記憶為含前不含后。

【返回值】

range函數返回的是一個range對象。

range函數不能直接生成列表或元組,必需利用list、tuple函數將其轉換成列表或元組。

【代碼示例】

r1 = range(3)
r2 = range(1,3)
r3 = range(2,8,3)
print("r1的值為:",list(r1))
print("r2的值為:",list(r2))
print("r3的值為:",list(r3))

【終端輸出】

r1的值為: [0, 1, 2]
r2的值為: [1, 2]
r3的值為: [2, 5]

1.3 if 條件判斷奇偶數

【代碼示例】

i = 9
if i%2 ==0 :
    print("i是偶數!")
else:
    print("i是奇數!")

【終端輸出】

i是奇數!

【代碼示例】

i = 4
if i%2 ==0 :
    print("i是偶數!")
else:
    print("i是奇數!")

【終端輸出】

i是偶數!

%表示取余。

一個數除以2的余數為0則該數為偶數,否則為奇數。

2. 課題導入

【目標任務】

創(chuàng)建一個1~5的數字列表。

2.1 直接創(chuàng)建列表

list1= [1, 2, 3, 4, 5]
print(list1)

【終端輸出】

[1, 2, 3, 4, 5]

列表用[]表示。

最簡單粗暴的方法就是直接用[]創(chuàng)建。

2.2 while循環(huán)創(chuàng)建列表

list2 = [ ]   # 新建一個空列表備用
i = 1  #給變量i賦一個初始值1
while i<=5 : # 用i來控制循環(huán)次數
    list2.append(i) # 用append函數將i添加到空列表中
    i += 1 # i的累加    
print(list2)

【終端輸出】

[1, 2, 3, 4, 5]

這里用while循環(huán)創(chuàng)建列表用了6行代碼。

2.3 for循環(huán)創(chuàng)建列表

list3 = [] # 新建一個空列表備用
for i in range(1, 6): # 創(chuàng)建有規(guī)律的數字列表最便捷的方法就是用range函數
    list3.append(i) # 用append函數將i添加到空列表中
print(list3)

【終端輸出】

[1, 2, 3, 4, 5]

這里用for循環(huán)創(chuàng)建列表用了4行代碼。

2.4 用列表推導式創(chuàng)建列表

list4 = [ i for i in range(1,6)]
print(list4)

【終端輸出】

[1, 2, 3, 4, 5]

這里用列表推導式創(chuàng)建列表僅用了2行代碼。

【總結】

從代碼的簡潔程度來講,用列表推導式創(chuàng)建列表最為簡單。

3. 什么是列表推導式

【定義】

列表推導式就是利用表達式及已知的列表創(chuàng)建(控制)一個有規(guī)律的列表。

已知的列表可以替換成可迭代對象。

【語法】

[表達式 for 迭代變量 in 可迭代對象 if條件表達式]

【表達式分析】

列表推導式主要由4個部分組成。

  1. 英文中括號[]。

  2. 表達式。

  3. for循環(huán)語句。

  4. if條件表達式。

if 條件表達式不是必須的,根據實際情況可以有也可以沒有。

語法中英文中括號中[]的3個部分內容之間用空格間隔。

即表達式后加一個空格,然后跟一個for循環(huán)語句,然后再加一個空格,最后再寫if條件判斷語句。

【列表推導式示例】

list4 = [ i for i in range(1,6)]

【語法如下】

[表達式 for 迭代變量 in 可迭代對象]

第1個i指的是表達式。

for i in range(1,6)是一個for循環(huán)語句。

range(1,6)是一個可迭代對象,即定義中的已知列表。

for循環(huán)每次迭代都從range(1,6)取出元素,賦值給迭代變量i

然后利用表達式對迭代變量進行變形,生成一個新的列表。

這里的表達式就是迭代變量本身,因此生成的就是由迭代變量組成的新的列表。

4. 列表推導式的作用

列表推導式的作用就是簡化代碼。

4.1 作用1:變形

計算輸出0~5序列的所有數的平方。

list5 = [ i**2 for i in range(1,6)]
print(list5)

【終端輸出】

[1, 4, 9, 16, 25]

【定義】

列表推導式就是利用表達式及已知的列表創(chuàng)建(控制)一個有規(guī)律的列表。

【解析】

表達式:i**2

已知的列表:range(1,6)

創(chuàng)建的新列表:[1, 4, 9, 16, 25]

【語法如下】

[表達式 for 迭代變量 in 可迭代對象]

【推導式如下】

list5 = [ i**2 for i in range(1,6)]

4.2 作用2:過濾

計算輸出10以內的偶數的平方。

list6 = [ i**2 for i in range(1,11) if  i%2==0]
print(list6)

【終端輸出】

[4, 16, 36, 64, 100]

【定義】

列表推導式就是利用表達式及已知的列表創(chuàng)建(控制)一個有規(guī)律的列表。

【解析】

表達式:i**2

已知的列表:range(1,11)

創(chuàng)建的新列表:[4, 16, 36, 64, 100]

【語法如下】

[表達式 for 迭代變量 in 可迭代對象 if條件表達式]

【推導式如下】

list6 = [ i**2 for i in range(1,11)  if i%2==0]

和之前的代碼相比,這里只是多了一個if條件判斷語句if i%2==0。

5. 實操練習

5.1 輸出20以內的奇數

list7 = [ i for i in range(1,21) if i%2!=0]
print(list7)

【終端輸出】

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

【語法解析】

表達式:i

for循環(huán)語句:for i in range(1,21)

if條件判斷語句:if i%2!=0

已知的列表:range(1,21)

5.2 輸出一個整數各個位數上的數字

【輸入】

假設這個整數為2468。

【輸出】

2 4 6 8

【代碼示例】

x = 2468
y = [ int(i) for i in str(x)]
print(y)

【代碼解析】

一個整數為2468,我們要依次取出該整數中的每個數字,我先用str函數將整數轉換為字符串類型。

用for循環(huán)依次遍歷該字符串,即可取出該數字中的每個字符,注意得到的是字符串類型。

x = 2468
for i in str(x):
    print(i)
print(type(i))

【終端輸出】

2
4
6
8
<class 'str'>

題目要求是要輸出數字,因此我們又利用int函數將字符串類型的字符轉換為整數。

x = 2468
for i in str(x):
    print(int(i))
print(type(int(i)))

【終端輸出】

2
4
6
8
<class 'int'>

這是我們之前掌握的方法,學了列表推導式,我們只需一行代碼就可以解決該問題了,如下所示:

x = 2468
y = [ int(i) for i in str(x)]
print(y)

【語法解析】

表達式:int(i)

for循環(huán)語句:for i in str(x)

可迭代對象:str(x)

5.3 調整列表順序

已知一個整數列表,要求調整元素順序,把列表中的奇數放在列表的前面,偶數放在列表的后面。

【輸入】

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

【輸出】

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

【思路解析】

  1. 取出整數列表中的奇數放入列表x中。

  2. 取出整數列表中的偶數放入列表y中。

  3. 合并列表x和y。

x = [i for i in range(1,9) if i%2 != 0]
print(x)
y = [i for i in range(1,9) if i%2 == 0]
print(y)
print(x+y)

【終端輸出】

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

【語法解析】

表達式:i

for循環(huán)語句:in range(1,9)

if條件判斷語句:if i%2 != 0

已知的列表:range(1,9)

5.4 用map函數輸出列表中所有元素的平方數

list1 = [1,2,3,4]
def fn (x):
    return x**2
res = map(fn, list1)
res = [i for i in res]
print(res)

【終端輸出】

[1, 4, 9, 16]

【代碼解析】

自定義一個函數fn。

x就是自定義函數fn的參數。

函數fn返回的是x的平方。

【代碼示例】

def fn (x):
    return x**2
fn(3)

【終端輸出】

9

fn(3)調用自定義函數。

這里的3傳遞給了fn函數的參數x。

題目要求的是輸出列表中所有數的平方數,因此傳遞的參數就不是一個數,應該是列表里的所有元素。

res = map(fn, list1)

map函數的相關知識在第83節(jié),鏈接如下:

83.map函數()-通過函數實現(xiàn)對可迭代對象的操作

map [m?p]:地圖,映射。

【語法】

map(function, iterables=, ...)

【功能】

map函數接收一個函數為它的參數,接收一個或多個可迭代對象為另一個參數,返回一個迭代器。

此迭代器中的每個元素都是函數參數依次作用于可迭代對象后的結果。

map函數在這里的功能就相當于依次取出列表中的元素,進行fn函數運算,然后返回的結果是迭代器。

要顯示迭代器里的具體內容,我們可以通過list函數,也可以用列表推導式。

map函數的參數1是fn自定義函數。

map函數的參數2是list1列表。

map函數返回的是一個迭代器。

【代碼示例】

list1 = [1,2,3,4]
def fn (x):
    return x**2
res = map(fn, list1)
print(res)

【終端輸出】

<map object at 0x000001F4E9E23CA0>

【列表推導式輸出迭代器中的元素】

list1 = [1,2,3,4]
def fn (x):
    return x**2
res = map(fn, list1)

res = [i for i in res]
print(res)

【終端輸出】

[1, 4, 9, 16]

i for i in res這是一個列表推導式。

表達式:i**2

已知的列表:res

創(chuàng)建的新列表:[1, 4, 9, 16]

【list函數輸出迭代器中的元素】

list1 = [1,2,3,4]
def fn (x):
    return x**2
res = map(fn, list1)

print(list(res))

【終端輸出】文章來源地址http://www.zghlxwxcb.cn/news/detail-470488.html

[1, 4, 9, 16]

到了這里,關于90. Python列表推導式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python列表差異值統(tǒng)計:集合操作、列表推導式、對稱差集詳解

    Python列表差異值統(tǒng)計:集合操作、列表推導式、對稱差集詳解

    ? 在Python中,統(tǒng)計兩個列表的差異值有多種方法,其中包括使用集合操作、列表推導式等。下面我將通過實例詳細講解幾種常見的方法,并提供相應的實例源代碼。 這些方法各有優(yōu)缺點,選擇使用哪一種取決于你的具體需求和性能考慮。方法一和方法三使用了集合操作,可能

    2024年02月01日
    瀏覽(20)
  • Python 程序設計入門(008)—— 列表的操作(3):列表推導式

    使用列表推導式可以快速生成一個列表?;蛘吒鶕硞€列表生成滿足指定需求的列表。列表推導式包含在方括號內,它由一個表達式、一個或多個 for 循環(huán)和一個用于過濾生成的列表的可選條件組成。 列表推導式的語法格式如下: 說明: (1)Expressinon:表達式,用于計算列

    2024年02月14日
    瀏覽(23)
  • python經典有序序列的list列表推導式

    生成一個數據列表 使用列表推導式生成該數據列表 分析: 1、使用一行代碼的列表推導式就完成了該列表的生成 2、[i for i in range(20)],第一個i元素代表向列表list_2中添加的元素 3、[i for i in range(20)],第二個i元素代表for循環(huán)遍歷的i元素 使用列表推導式生成只有偶數的數據列

    2024年02月02日
    瀏覽(23)
  • Python 列表推導式:簡潔、高效的數據操作藝術

    Python 的列表推導式,這個看似簡單的語法糖,實則內含無限威力。在 Python 代碼編寫中,列表推導式的靈活性和簡潔性讓它成為了不可或缺的一部分。在這篇文章中,我們將更全面、更深入地探討列表推導式,從基礎的概念認識,到各類進階的用法和操作,我們一一揭秘。最

    2024年02月08日
    瀏覽(18)
  • Python 列表推導式(List Comprehension)的使用

    樣例代碼: 輸出如下: 源碼解釋: 在給定函數 func(g, arr) 中,表達式 [g(x) for x in arr] 是列表推導式(List Comprehension)的一種寫法。它的作用是將函數 g 應用于列表 arr 中的每個元素 x ,并將結果存儲在一個新的列表中。 解釋 [g(x) for x in arr] 的過程如下: 對于列表 arr 中的每

    2024年02月12日
    瀏覽(14)
  • python 列表推導同filter和map的比較

    filter 和 map 合起來能做的事情,列表推導也可以做,而且還不需要借助難以理解和閱讀的 lambda 表達式。 我原以為 map/filter 組合起來用要比列表推導快一些,Alex Martelli 卻說不一定——至少在上面這個例子中不一定。在本書的代碼倉庫(https://github.com/fluentpython/examplecode)中有

    2024年01月18日
    瀏覽(17)
  • 5、Python循環(huán)及列表推導式(List Comprehension)

    For 和 while 循環(huán)以及 Python最重要的功能:列表推導式(List Comprehension) 循環(huán)是重復執(zhí)行某些代碼的一種方式: In [1]: for 循環(huán)指定了以下內容: 要使用的變量名(在這種情況下是 planet ) 要循環(huán)遍歷的值集合(在這種情況下是 planets ) 你使用 “ in ” 連接它們。 “ in ” 右邊

    2024年01月19日
    瀏覽(24)
  • 【Python】進階學習:列表推導式如何使用兩個for循環(huán)

    【Python】進階學習:列表推導式如何使用兩個for循環(huán)

    【Python】進階學習:列表推導式如何使用兩個for循環(huán) ?? 個人主頁:高斯小哥 ?? 高質量專欄:Matplotlib之旅:零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程?? 希望得到您的訂閱和支持~ ?? 創(chuàng)作高質量博文(平均質量分92+),分享更多關于深度學習、

    2024年03月17日
    瀏覽(35)
  • 90天玩轉Python—11—基礎知識篇:Python自動化操作Excel:讀寫、增刪改查、分組統(tǒng)計全攻略

    90天玩轉Python—01—基礎知識篇:C站最全Python標準庫總結 90天玩轉Python--02--基礎知識篇:初識Python與PyCharm 90天玩轉Python—03—基礎知識篇:Python和PyCharm(語言特點、學習方法、工具安裝) 90天玩轉Python—04—基礎知識篇:Python編程基礎:標識符、保留字、注釋、多行語句、p

    2024年04月11日
    瀏覽(24)
  • 【力扣100】74.搜索二維矩陣 || 列表推導式

    添加鏈接描述 思路: 暴力求解 把矩陣降維,然后使用二分搜索 列表推導式 將二維數組變?yōu)橐痪S數組中,使用 列表推導式 ,會更加簡便 解法二: 思路: 同樣是二分查找,把mid對應的二維坐標找到就可以了

    2024年01月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包