Python筆記(2)——列表一:列表簡介(Python編程:從入門到實踐)

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

一、列表是什麼 列表:由一系列按特定順序排列的元素組成(列表是有序集合)。 表示:用方括弧[]來表示,並用逗號來分隔其中的元素。 訪問:訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。 列表索引從0開始:在Py ...


一、列表是什麼

  1. 列表:由一系列按特定順序排列的元素組成(列表是有序集合)。

  2. 表示:用方括弧[]來表示,並用逗號來分隔其中的元素。

  3. 訪問:訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括弧內。請求獲取列表元素時,Python只返回該元素,而不包括方括弧和引號。

  4. 列表索引從0開始:在Python中,第一個列表元素的索引為0,而不是1。要訪問第四個列表元素,可使用索引3。索引-1返回列表最後一個元素。索引-2返回倒數第二個列表元素

  5. 使用列表中的各個值:可像使用其他變數一樣使用列表中的各個值。例如,可使用拼接(+)根據列表中的值來創建消息。

 1 F=['red','blue','green','yellow'] 
 2 
 3 #訪問列表元素:
 4 print(F[2])  #列表名稱+[索引]
 5 
 6 #列表索引從0開始:
 7 print(F[0]) #第一個元素
 8 print(F[3]) #第四個元素
 9 print(F[-1]) #最後一個元素
10 print(F[-3]) #倒數第三個元素
11 
12 #使用列表中的各個值:
13 print("我最喜歡的顏色是"+F[0]+"")

運行代碼結果如下:

二、修改、添加和刪除元素 

  1.修改列表元素

  要修改列表元素,可指定列表名和要修改的元素的索引再指定該元素的新值列表名[索引]=新值】

1 #   1.修改列表元素:
2 F=['red','blue','green','yellow'] 
3 print(F)
4 F[2]="black" #列表名[索引]=新值
5 print(F)

代碼運行結果:

  2. 添加列表元素

  (1)在列表末尾添加元素:使用方法.append()。可創建一個空列表,再使用一系列的append()語句添加元素。列表.append(值)】

  (2)在列表中插入元素:使用方法.insert() 在列表任何位置添加新元素。列表.insert(索引,值)】。要特別註意當索引為負值時插入的位置。

 1 #   2.添加列表元素
 2 A=[90,80,'green'] 
 3 print(A)
 4 #(1)在列表末尾添加元素
 5 A.append(100)  #列表名.append(值)
 6 print(A)
 7 #(2)在列表中插入元素
 8 A.insert(1,20.6)  #列表名.insert(索引,值)
 9 print(A)
10 A.insert(-1,55)  #註意:列表.insert(索引 = -1, 值)時,當索引 = 負數時,是從倒數倒數第二位開始插入。
11 print(A)

 代碼運行結果:

  3.刪除列表元素

  (1)使用del語句刪除:前提是知道索引。del 列表[索引]】

  (2)使用方法.pop()刪除:方法pop()可刪除列表元素,並接著使用它。方法中無參數時,預設刪除列表末尾元素。列表.pop(索引)】

  (3)根據值刪除元素:不知道元素索引,知道值,使用.remove()方法刪除,使用remove()從列表中刪除元素時,也可接著使用它的值。列表.remove(值)】

註意:方法remove()只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。
 1 #   3.刪除列表元素:
 2 B=["C#","C++","python","java","GIS","RS","WebGIS"]
 3 print(B)
 4 
 5 #(1)使用del語句刪除
 6 del B[1] #del 列表[索引]
 7 print(B)
 8 
 9 #(2)使用方法pop()刪除
10 B.pop() #方法中無參數時,預設刪除列表末尾元素。列表.pop()
11 print(B)
12 b1=B.pop() #使用方法pop()刪除列表元素時,可以接著使用它。所以將其賦值給變數f1
13 print(b1)
14 print(B)
15 B.pop(0) #刪除指定位置元素。列表.pop(索引)
16 print(B)
17 
18 #(3)根據值刪除:不知索引,使用方法 .remove()
19 C=[11,22,33,44,55,66]
20 print(C)
21 C.remove(33)
22 print(C)
23 mm=66 #使用remove()從列表中刪除元素時,也可接著使用它的值。但是它的使用與.pop()不同,不能使用變數=列表.remove(),而是命名變數=列表元素
24 C.remove(mm)
25 print(C)
26 print("That man is "+str(mm)+" years old.") #要用str()將mm轉為字元串輸出,不然會報錯:TypeError: can only concatenate str (not "int") to str

代碼運行結果:

三、組織列表

  1. 使用方法 .sort()對列表進行永久性排序

  方法.sort()按字母順序排列永久改變列表順序,如果要按字母順序相反方向排列元素,則需向方法中傳遞參數reverse=True【列表.sort()】或【列表.sort(reverse=True)】

1 #使用方法 sort()對列表進行永久性排序
2 Alist1=['Python','123','WebGIS','Cnblogs']
3 print(Alist1)
4 Alist1.sort() #降序排列
5 print(Alist1) 
6 Alist2=['Python','123','WebGIS','Cnblogs']
7 Alist2.sort(reverse=True) #升序排列
8 print(Alist2)

代碼運行結果:

  2. 使用函數 sorted()對列表進行臨時排序

  函數sorted()按字母順序臨時改變列表順序,如果要按字母順序相反方向排列元素,則需向函數中傳遞參數reverse=True【sorted(列表)】或【sorted(列表,reverse=True)】

註意:臨時排序與永久排序不一樣:臨時排序定義列表後,不能【sorted(列表)】再【print(列表)】。因為是臨時排序,直接【print(列表)】會輸出原列表。

 1 #使用函數 sorted()對列表進行臨時性排序
 2 print("降序排列")
 3 Alist1=['123','Cnblogs','Python','WebGIS','B'] #定義列表
 4 print(Alist1) #輸出原列表
 5 print(sorted(Alist1))  #臨時降序排序
 6 print(Alist1) #再次輸出列表,與原列表相同
 7 
 8 print("\n升序排列")
 9 Alist2=['Python','123','WebGIS','Cnblogs'] #定義列表
10 print(Alist2) #輸出原本列表
11 print(sorted(Alist2,reverse=True)) #輸出臨時升序排列!註意反向排序表達!
12 print(Alist2) #再次輸出列表,與原列表相同
13 # 註意臨時排序與永久排序不一樣:臨時排序定義列表後,不能【sorted(列表)】再【print(列表)】。因為是臨時排序,直接【print(列表)】會輸出原列表。

代碼運行結果:

  • 拓展一:字元編碼排序

python預設編碼:

  python 2.x預設的字元編碼是ASCII,預設的文件編碼也是ASCII。

  python 3.x預設的字元編碼是unicode,預設的文件編碼是utf-8。

兩種編碼方式排序相同:以十進位表示部分字元編碼:

0~9:48~57

A~Z:69~90

a~z:97~122

  • 拓展二:函數和方法形式上的區別

  (1)方法:【變數.方法(其他參數)】,其他參數可無。例如:Alist.sort(reverse=True)   (2)函數:【函數(變數,其他參數) 】,其他參數可無。例如:sorted(Blist,reverse=True)

  3. 倒著列印列表

  要反轉列表元素的排列順序,可使用方法.reverse()。方法.reverse()永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,只需對列表再次調用reverse()即可。

註意:.reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序

1 D=['a','c','100','e','A']
2 print(D) #原列表
3 D.reverse() #第一次反轉
4 print(D)
5 D.reverse()#第二次反轉,變回原列表
6 print(D)

代碼運行結果:

  4. 確定列表的長度

  使用函數len()獲取列表長度。【len(列表)】

註意:python計算元素時從1開始,要與列表索引區別開。

1 D=['a','c','100','e','A']
2 print(len(D))

代碼運行結果:


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

-Advertisement-
Play Games
更多相關文章
  • ###慣例,先鳴謝大佬的文章:將NetCore智能提示從英文變成中文 第一步:下載語言包並解壓 ####按照大佬的指導,先到Download localized .NET IntelliSense files 下載了語言包 ####下載之後解壓出三個文件 ####我想要的就是 NETStandard ...
  • 安裝的需要VMware官方網站安裝VMware Workstation Pro 16:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.0.0-16894299.exeVMware Workstati ...
  • 利用 GetSystemTimes 可以獲得 Windows 系統的 Idle Time、 Kernel Time 和 User Time。Idle Time 是系統空閑的時間,也就是系統沒有利用的時間。Kernel Time 是系統在內核模式下的執行時間。User Time 是系統在用戶模式下的執 ...
  • 官網下載: https://www.snipaste.com Snipaste 免費,支持 Windows、Mac,Windows 上的功能相當多而且,Mac 也夠用了 不僅僅是個截圖工具,具有強大功能: 截圖 貼圖(直接將截圖貼在桌面上,當標簽貼使用) 取色器 常用快捷健 fn + F1: 開始截 ...
  • Vue02 7.修飾符 7.1基本說明 修飾符(Modifiers)是以.指明的尾碼,指出某個指令以特殊方式綁定 官方文檔:修飾符 Vue中的修飾符有: 事件修飾符 按鍵修飾符 系統修飾符 事件修飾符 <!-- 阻止單擊事件繼續傳播 --> <a v-on:click.stop="doThis">< ...
  • 變數作用域: 1、全局變數:在全局作用域下聲明的變數 ​ 在函數內部沒有聲明直接賦值的變數也是屬於全局變數 全局變數:只有瀏覽器關閉的時候才會銷毀,比較占記憶體資源 局部變數 :當我們程式執行完畢就會銷毀,比較節約記憶體資源 作用域鏈:內部函數訪問外部函數的變數,採取的是鏈式查找的方式來決定取哪個值 這 ...
  • 歡迎閱讀本系列其他文章 【前端調試】- 更好的調試方式 VSCode Debugger 【前端調試】- 斷點調試的正確打開方式 介紹 首先簡單過一下Performance的使用,打開網頁點擊控制台Performance,錄製5s的數據 其中 Main 這部分就是網頁的主線程,也就是執行 Event ...
  • 方法 System.out.println();//是什麼嗎? //系統類+對象+方法 Java方法是一對語句的集合,他們一起負責執行一個功能 方法是解決一類問題的步驟的有序組合 方法包含於類或對象中 方法在程式中被創建,在其他地方被引用 設計原則: 方法本意是功能塊**(類似C語言的函數)**, ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...