Python筆記(3)——列表二:操作列表(Python編程:從入門到實踐)

来源:https://www.cnblogs.com/BeiChenAZ-ER/archive/2023/01/09/17037207.html
-Advertisement-
Play Games

【列表一:操作列表】:這裡總結了操作列表的部分知識,包括使用for迴圈遍歷列表、range()函數介紹、使用range()函數創建數值列表,以及是列表的切片。 ...


一、遍歷列表

  1. 遍歷整個列表:使用for迴圈

1 colors=['red','yellow','blue','green'] #定義列表
2 for color in colors: #使用迴圈:從列表中提取一個元素並將其存在變數i中
3     print(color) #列印變數i的值
以上代碼運行的結果是:
  執行第1行代碼定義列表colors,執行第2行代碼;for語句末尾的冒號告訴Python,下一行是迴圈的第一行。進入第一次迴圈 第2行代碼獲取列表colors中的第一個值('red'),並將其存儲到變數 color 中;接下來執行第3行代碼,讓Python列印 color 的值'red'。完成第一次迴圈。   由於列表還包含其他值,Python返回到迴圈的第一行,即第2行代碼,開始第二次迴圈 Python獲取列表中的第二個顏色'yellow',並將其存儲到變數 color 中,再執行第3行代碼,Python再次列印變數 color 的當前的值'yellow',完成第二次迴圈。   依此類推,直至對列表中的最後一個值'green'進行處理。至此,列表沒有其他的值了,Python執行程式的下一行代碼。   在這個示例中,for迴圈後面沒有其他的代碼,程式就此結束。

  2.for 迴圈中的縮進與結束後操作

1 colors=['red','yellow','blue','green']
2 for color in colors: 
3     print(color.title()+"是我最喜歡的顏色。") 
4     print(""+color.upper()+"是他最討厭的顏色。\n")
5 print("這條語句不在迴圈內,只在迴圈結束後執行一次")
以上代碼運行的結果是:
  在代碼for color in colors後面,每個縮進的代碼行都是迴圈的一部分,且將針對列表中的每個值都執行一次。因此,可對列表中的每個值執行任意次數的操作。由於前兩條print語句都縮進了,因此它們都將針對列表中的每個元素執行一次。第二條print語句中的換行符"\n",在每次迭代結束後都插入一個空行從。第3條print語句不在迴圈內,只在迴圈結束後執行一次

二、創建數值列表

  1.函數 range()介紹

  可用Python函數range()讓成一系列的數字。函數range()Python指定的第一個值開始數,併在到達指定的第二個值後停止,輸出不包含第二個值
1 for value_1 in range(2,7): #使用迴圈遍歷range(2,7)的整數
2     print (value_1)
以上代碼運行的結果是:

   2.創建數值列表

  要創建數字列表,可使用函數list()range()的結果直接轉換為列表。如果將range()作為list()的參數,輸出將為一個數字列表使用函數range()時,還可指定步長。【range(a,b,c)】a為開始元素,b為結束元素(不包含b),c為步長。

  列表解析:將for迴圈和創建新元素的代碼合併成一行,並自動附加新元素。用法:首先指定一個描述性的列表名,如Sa;然後指定一個左方括弧,並定義一個表達式,用於生成你要存儲到列表中的值。在下麵20-24行代碼中,表達式為a**2,它計算平方值。接下來,編寫一個for迴圈,用於給表達式提供值,再加上右方括弧。在下麵示例中,for迴圈為for value in range(1,11),它將值1~10提供給表達式value**2。請註意,這裡的for語句末尾沒有冒號。

 1 print('創建數字列表')
 2 num=list(range(10,15)) #創建num列表,將range()的結果直接轉換為列表。此處range()作為列表的參數,運行後輸出一個數字列表
 3 print(num)
 4 
 5 print('\n指定range()的步長')
 6 num1=list(range(10,15,2)) #從10開始,到15(不包括15),步長為2
 7 print(num1)
 8 
 9 print("\n練習:創建一個包含前十個整數的平方列表")
10 As=[] #新建空列表
11 for a in range(1,11): #使用range()函數創建數字1~10,並將其保存在變數a中
12     A=a**2 #計算當前迴圈值得平方
13     As.append(A) #使用append()方法將當前平方值添加到列表中
14 print(As) #迴圈結束後,列印列表。
15 
16 print("\n練習的簡介代碼")
17 S=[]
18 for i in range(1,11):
19     S.append(i**2)
20 print(S)
21     
22 print("\n列表解析例子:將練習代碼合成一行")
23 Sa=[a**2 for a in range(1,11)]
24 print(Sa)
以上代碼運行的結果是:

  3.數字列表簡單統計計算 

 min()函數:返回數字列表最小值

max()函數:返回數字列表最大值

sum()函數:對數字列表元素求和

1 D=[10,20,30,40,50,60,70,80,90,0]
2 print(min(D))
3 print(max(D))
4 print(sum(D))
以上代碼運行的結果是:

三、使用列表的一部分

  1. 切片

  創建切片,需使用起始元素和終止元素的索引。列表的切片返回的是列表,可理解為獲取原列表的子集。【list[a:b:c]】,a、b、c分別為起始於索引、終止索引及步長(不包括終止位置元素b) 

 註意:

  ①列表切片使用符號是冒號“:”range()函數使用的是逗號“,”。列表用逗號“,”分隔。

  ②未指定起始索引,預設從原列表第一個位置,即索引0開始提取元素。

  ③未指定終止索引,預設提取到列最後一個元素。

  ④列表中的步長理解:假設原列表為Q=[-20,-10,10,20,30,40,50,60,70,80,90,100,0]切片為Q[3:10:3],則切片從3號索引的20開始,到9號索引位的80,間隔3提取元素組成列表。提取的子集為[50,80]特別註意,間隔3可理解為從起始索引位開始,向後開始數1~3,要提取每次數到3時該索引位置的元素。

 1 alist=[3,'@','pen','book',6,'W','top']
 2 print(alist)  #列印原列表
 3 print("列表的切片返回的是列表,可理解為獲取原列表的子集")
 4 print(alist[:])  #同樣是列印原列表。列表切片使用的符號是冒號【:】,註意range()函數使用的是逗號【,】。列表用逗號【,】分隔
 5 print(alist[:3])  #未指定開始索引,從頭開始到索引3(不包括索引3位置元素)
 6 print(alist[3:])  #未指定終止元素,切片未從索引3位置到列表最後
 7 print(alist[0:2])  #提取第1-2個元素
 8 print(alist[1:5:2])  #以2未步長,提取從第2個開始到第5個元素,即索引4位置元素。註意步長
 9 print(alist[1::2])  #以2為步長,提取從第2個開始到列表最後的元素
10 print(alist[-3:])  #提取倒數第三位至最後的元素
11 print(alist[2:-2]) #提取從第三位到倒數第二位之間的元素

以上代碼運行的結果是:

   2. 遍歷切片

  要遍歷列表的部分元素,可在for迴圈中使用切片。下麵的例子將遍歷前三個元素並將其列印出來。

 1 print("代碼1:")
 2 alist=[3,'@','pen','book',6,'W','top']
 3 AA=alist[0:3]
 4 for a in AA:
 5     print(a)
 6 
 7 print("\n代碼2:")
 8 alist_1=[3,'@','pen','book',6,'W','top']
 9 for a in alist_1[:3]:
10     print(a)
以上代碼運行結果是:

  使用列表解析不能得到上面要求的結果:

1 print("\n'代碼3:列表解析'不能得到提取前三個元素並將其列印的結果,因為列表解析得到的是列表")
2 alist_2=[3,'@','pen','book',6,'W','top']
3 a=[i for i in alist_2[:3]]
4 print(a)
以上代碼運行的結果是:

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 摘要:Cookie、Session、Token 這三者是不同發展階段的產物 本文分享自華為雲社區《Cookie、Session、Token 背後的故事》,作者: 龍哥手記。 1. 網站交互體驗升級 作為網友的我們,每天都會使用瀏覽器來逛各種網站,來滿足日常的工作生活需求。 現在的交互體驗還是很絲滑的 ...
  • VUE 筆記目錄:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 視頻教程(P146~P148) 本篇是使用的vue2。雖然vue3.x已經出了,目前但對於後端人員來說瞭解一些vue2就足夠了。不需要過於深入學習 Vue是一套前端框架,免除原 ...
  • 電銷是什麼?就是坐席拿著電話給客戶打電話嗎?no no no,讓我們一起走進京音平臺之電銷系統。 京音平臺2020年初開始建設,過去的兩年多的時間里,經歷了跌宕起伏,有經驗、有教訓,整體來說平臺經歷了人工、自動化階段,目前處於初步智能化階段,希望可以將過去的一些心路歷程分享給大家,共同交流、共同進... ...
  • 每條if語句的核心都是一個值為True或False的表達式。Python根據條件測試的值為True還是False來決定是否執行if語句中的代碼。如果條件測試的值為True,Python就執行緊跟在if語句後面的代碼;如果為False,Python就忽略這些代碼。 1. 檢查是否相等:將一個變數的當前 ...
  • 最近刷leetcode題,使用了move()函數及優先隊列(堆)priority_queue數據結構,記錄一下! 1.move函數 move(obj)函數的功能是把obj當做右值處理,可以應用在對象的移動上。 右值引用 為了支持移動操作,新標準引入了一種新的引入類型——右值引用,所謂右值引用就是必須 ...
  • 元組 1. 元組:不可變的列表。元組一經創建不能被修改。 2. 表示:用圓括弧()來表示,並用逗號來分隔其中的元素。可通過索引訪問其元素。 3. 訪問:訪問列表元素,指出元組的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。元組訪問與列 ...
  • 2023-01-09 一、Mybatis映射文件 1、映射文件根標簽 mapping標簽: 該標簽中的namespace要求與介面的全類名一致 2、映射文件子標簽 (1)cache(該命名空間的緩衝配置) (2)cache-ref(引用其他命名空間的緩存配置) (3)resultMap(描述如何從數 ...
  • python數據分析與可視化常用庫 numpy+matplotlib+pandas 思維導圖 圖中難免有錯誤,後期隨著學習與應用的深入,會不斷修改更新。 當前版本號:1.0 numpy介紹 NumPy 是什麼? NumPy是使用Python進行科學計算的基礎軟體包。除其他外,它包括: 功能強大的N維 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...