Python基礎-05列表

来源:https://www.cnblogs.com/surpassme/archive/2020/05/25/12961609.html
-Advertisement-
Play Games

5.列表 列表是實際應用非常多的一種數據類型,需要好好掌握。列表的主要特性如下所示: 1.支持增加、修改和刪除元素操作 2.列表的長度是可變的 3.列表支持排序 5.1 索引與切片 列表中索引是從0開始,且支持正向和反向兩種索引方式。如下所示: a=[1,2,"abc",[4,5,6],{"a":7 ...


5.列表

    列表是實際應用非常多的一種數據類型,需要好好掌握。列表的主要特性如下所示:

  • 1.支持增加、修改和刪除元素操作
  • 2.列表的長度是可變的
  • 3.列表支持排序

5.1 索引與切片

    列表中索引是從0開始,且支持正向和反向兩種索引方式。如下所示:

a=[1,2,"abc",[4,5,6],{"a":7,"b":8},(10,20)]

print(f"取出列表中第1個元素:{a[0]}")
print(f"取出列表中元素類型為列表的元素:{a[3]}")
print(f"取出列表第2到第4個元素:{a[2:5]}")

輸出結果如下所示:

取出列表中第1個元素:1
取出列表中元素類型為列表的元素:[4, 5, 6]
取出列表第2到第4個元素:['abc', [4, 5, 6], {'a': 7, 'b': 8}]

5.2 修改元素

    修改列表的元素其實非常簡單,示例代碼如下所示:

a=[1,2]
a[0]=100
print(a)

輸出結果如下所示:

[100, 2]

5.3 常用方法

  • append():在列表末尾追加元素
  • insert():在指定索引位置中添加元素
  • del:刪除元素(物理刪除)
  • pop():刪除元素(邏輯刪除),類似於棧彈出元素
  • remove():根據值刪除元素
  • sort():對列表進行永久性排序,常用形式為list.sort()
  • sorted()對列表進行臨時性排序,常用形式為sorted(list)
  • reverse():倒序輸出列表
  • extend():向一個列表添加列表
  • len():獲取列表的長度
  • clear():清空列表元素,保留空列表
  • index():獲取指定元素在列表的索引位置
  • count():統計列表中元素的出現次數

    示例代碼如下所示:

a=[1,2]
b=[3,4,5]
c=[9,0,10,12]
d=[9,0,10,12]
# 列表追加元素:
a.append(100)
# 列表插入元素
a.insert(1,999)
# 刪除元素,這種刪除需要事先知道索引,刪除之後無法再進行訪問
del a[-1]
# 刪除元素,將元素刪除後,仍然可以其刪除的值,pop如果不填寫索引,則預設刪除末尾的元素
popValueA=a.pop()
popValueB=a.pop(0)
print(f"{a} {popValueA} {popValueB}")
# 對列表進行永久排序
print(f"列表進行永久性排序,排序前:{c}")
c.sort()
print(f"列表進行永久性排序,排序後:{c}")
# 對列表進行臨時排序
print(f"列表進行臨時性排序,排序前:{d}")
sorted(d)
print(f"列表進行臨時性排序,排序後:{d}")
d.reverse()
print(f"列表倒序輸出:{d}")
a.extend(d)
print(f"向列表中添加列表:{a}")
print(f"獲取列表的長度:{len(a)}")
a.clear()
print(f"清空列表,僅保留空列表:{a}")
print(f"獲取指定元素在列表的索引:{d.index(9)}")
print(f"統計元素在列表中出現的次數:{d.count(9)}")

輸出結果如下所示:

[999] 2 1
列表進行永久性排序,排序前:[9, 0, 10, 12]
列表進行永久性排序,排序後:[0, 9, 10, 12]
列表進行臨時性排序,排序前:[9, 0, 10, 12]
列表進行臨時性排序,排序後:[9, 0, 10, 12]
列表倒序輸出:[12, 10, 0, 9]
向列表中添加列表:[999, 12, 10, 0, 9]
獲取列表的長度:5
清空列表,僅保留空列表:[]
獲取指定元素在列表的索引:3
統計元素在列表中出現的次數:1

5.4 列表拼接:

    元組拼接有兩種方式:

  • +:首尾拼接
  • *:複製拼接

    示例代碼如下所示:

a=[1,2]
b=[3,4,5]

print(f"列表首尾拼接:{a+b}")
print(f"複製拼接:{b*3}")

輸出結果如下所示:

列表首尾拼接:[1, 2, 3, 4, 5]
複製拼接:[3, 4, 5, 3, 4, 5, 3, 4, 5]

5.5 轉換數據類型

    使用list()tuple()函數可以方便在列表和元組中轉換數據類型,如下所示:

a=[1,2]
c=(3,4,5)

print(f"列表轉換為元組:{tuple(a)}")
print(f"元組轉換為列表:{list(c)}")

輸出結果如下所示:

列表轉換為元組:(1, 2)
元組轉換為列表:[3, 4, 5]

5.6 優缺點

  • 優點:靈活好用,可索引、可切片、可更改、可附加、可插入、可刪除
  • 缺點:相比元組創建和遍歷速度慢,占記憶體。此外查找和插入時間較慢。

本文同步在微信訂閱號上發佈,如各位小伙伴們喜歡我的文章,也可以關註我的微信訂閱號:woaitest,或掃描下麵的二維碼添加關註:
MyQRCode.jpg


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

-Advertisement-
Play Games
更多相關文章
  • 一、基本概念 合成模式屬於對象的結構模式,有時又叫做“部分——整體”模式。合成模式將對象組織到樹結構中,可以用來描述整體與部分的關係。合成模式可以使客戶端將單純元素與複合元素同等看待。 二、通俗解釋 COMPOSITE合成模式:Mary今天過生日。“我過生日,你要送我一件禮物。”“嗯,好吧,去商店, ...
  • 一、基本概念 橋梁模式(Bridge)是對象的結構模式。又稱為柄體(Handle and Body)模式或介面(Interface)模式。橋梁模式的用意是“將抽象化(Abstraction)與實現化(Implementation)脫耦,使得二者可以獨立地變化”。 這句話有三個關鍵詞,也就是抽象化、實 ...
  • 一、基本概念 適配器模式是將某個類的介面轉換成客戶端期望的另一個介面表示,目的是消除由於介面不匹配所造成的的類的相容性問題。 二、通俗解釋 ADAPTER 適配器模式:在朋友聚會上碰到了一個美女Sarah,從香港來的,可我不會說粵語,她不會說普通話,只好求助於我的朋友kent了,他作為我和Sarah ...
  • 我們在使用Spring框架中,特別是框架級的功能,經常看到有@Import導入功能, ​ 我就介紹下它能導入什麼,首先聲明下@Import是註解,導入類型可分為三類: 1. 導入配置 @Configuration,類似於spring早期版本2.5的import xml文件一樣, <?xml vers ...
  • 一、不同環境下的C 1.一個源程式inform.c編譯生成a.out,然後可以直接運行這個可執行程式,如果要存儲這個可執行文件,應該把它重命名,否則,就會被下一次編譯程式時生成的新a.out所替換。 2.如何處理目標代碼,C編譯器會創建一個inform.o,然而卻找不到這個文件,因為一旦鏈接器生成了 ...
  • @ 一、類的載入概述 載入 就是指將class文件讀入記憶體,併為之創建一個Class對象 任何類被使用時系統都會建立一個Class對象 連接 驗證:是否有正確的內部結構,並和其他類協調一致 準備:負責為類的靜態成員分配記憶體,並設置預設初始化值 解析:將類的二進位數據中的符號引用替換為直接引用 初始化 ...
  • cola擴展點使用和設計初探 封裝變化,可靈活應對程式的需求變化。 擴展點使用 步驟: 定義擴展點介面,類型可以是校驗器,轉換器,實體; 必須以ExtPt結尾,表示一個擴展點。 比如,我定義一個雲樞的組織結構的擴展點介面,消息發送擴展點,二開擴展點,webapi的rest介面擴展點點。 定義擴展點接 ...
  • 6.字典 字典的主要特性如下所示: 1.字典是使用大括弧進行定義 2.字典中的元素是鍵值對的形式出現,每個鍵值對之間使用冒號進行分隔,每個元素間使用逗號進行分隔 3.字典中鍵必須為不可更改的數據類型,如整型數據、浮點數據、布爾型、字元型、元組等,但不能列表和變數 6.1 基本使用 1.添加 直接給對 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...