【Python】組合數據類型:序列,列表,元組,字典,集合

在這里插入圖片描述


個人主頁:【😊個人主頁】
系列專欄:【??Python】


文章目錄

  • 前言
  • 組合數據類型
  • 序列類型
    • 序列常見的操作符
    • 列表
      • 列表操作
        • len()
        • append()
        • insert()
        • remove()
        • index()
        • sort()
        • reverse()
        • count()
    • 元組
    • 三種序列類型的區別
  • 集合類型
    • 四種操作符
    • 集合
      • set
      • frozenset
      • 常見的集合類型操作函數
  • 映射類型
    • 字典
      • 字典類型的常用方法
  • 數據類型轉換


前言

在上一篇文章中,我們介紹了九種數據類型的前三種,包括了數字,布爾類型,字符串類型,今天我們就來介紹在Python中占有特殊地位的五種組合數據類型:序列,列表,元組,字典,集合。想了解更多Python內容請訂閱內容【Python系列教程】
在這里插入圖片描述

組合數據類型

組合數據類型能將不同類型的數據組織在一起,實現更復雜的數據表示或數據處理功能。根據數據之間的關系,組合數據類型可以分為三類:序列類型映射類型集合類型。序列類型包括列表、元組和字符串三種。映射類型用鍵值對表示數據,典型的映射類型有字典。集合類型的數據中元素是無序的,集合中不允許有相同的元素存在。

——集合類型:是一個元素集合,元素之間無序,相同元素在集合中唯一存在。集合(set)
——序列類型:是一個元素向量,元素之間存在先后關系,通過序號訪問,元素之間不排他。序列類型的典型代表是字符串(str)、列表(list)、元組(tuple)
——映射類型:是“鍵-值”數據項的組合,每個元素是一個鍵值對,表示為(key,value).映射類型的典型代表是字典(dict)

在這里插入圖片描述

序列類型

序列類型的元素之間存在先后關系,通過索引來訪問,當我們需要訪問序列中的某個元素時,要找出其索引,再通過索引尋找元素。

這些序列類型都支持索引和切片操作,可以通過索引訪問序列中的元素,也可以通過切片獲取序列的子序列。此外,還可以使用內置函數和方法對序列進行操作,例如獲取序列的長度、查找元素的位置、添加、刪除和修改元素等。

序列常見的操作符

操作符描述
x in s如果x是s的元素,返回True,否則返回Flase
x not in s如果x不是s的元素,返回True,否則返回Flase
s +t連接s和t
s n或ns將序列s復制n次
s[i]索引,返回序列的第i個元素
s[i:j]切片,返回序列s到第i到第j個元素的子序列(不包含第j個元素)
s[i:j:k]步驟切片,返回包括序列s到第i到第j個元素以k為步長的子序列
len(s)序列s的元素個數(長度)
min(s)序列s中的最小元素
max(s)序列s中的最大元素
s.index(x)序列s中第一次出現元素x的位置
s.count(x)序列s中元素x出現的總次數

列表

列表是 Python 中最常用的序列類型,它是由元素組成的可變序列,使用方括號括起來,并用逗號分隔。4

列表中的元素(又稱數據項)不需要具有相同的類型。創建列表時,只要把逗號分隔的元素使用方括號括起來即可。列表是可變的,用戶可在列表中任意增加元素或刪除元素,還可對列表進行遍歷、排序、反轉等操作。

在這里插入圖片描述

list = ['runoob', 786, 2.23, 'john', 70.2]
tinylist = [123, 'xue']
print(list)  # 輸出完整列表
print(list[0] ) # 輸出列表的第一個元素
print(list[1:3])  # 輸出第二個至第三個元素
print(list[2:]) # 輸出從第三個開始至列表末尾的所有元素
print (tinylist * 2 ) # 輸出列表兩次
print (list + tinylist)  # 打印組合的列表

在這里插入圖片描述

列表操作

在這里插入圖片描述

len()
my_list = [1, 2, 3, 4]
print(len(my_list))  # 輸出4
    返回列表的長度
append()
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 輸出[1, 2, 3, 4]
向列表末尾添加元素
insert()
my_list = [1, 2, 3, 4]
my_list.insert(2, 5)
print(my_list)  # 輸出[1, 2, 5, 3, 4]
在指定位置插入元素
remove()
my_list = [1, 2, 3, 4]
my_list.remove(3)
print(my_list)  # 輸出[1, 2, 4]
移除指定元素
index()
my_list = [1, 2, 3, 4]
print(my_list.index(3))  # 輸出2
返回指定元素第一次出現的索引
sort()
my_list = [3, 1, 4, 2]
my_list.sort()
print(my_list)  # 輸出[1, 2, 3, 4]
對列表進行排序
reverse()
my_list = [1, 2, 3, 4]
my_list.reverse()
print(my_list)  # 輸出[4, 3, 2, 1]
反轉列表
count()
my_list = [1, 2, 2, 3, 3, 3]
print(my_list.count(2))  # 輸出2
返回指定元素在列表中出現的次數

元組

Python的元組與列表類似,不同之處在于元組的元素不能修改,元組使用小括號(),列表使用方括號。元組創建很簡單,只需要在括號中添加元素,并使用括號隔開即可。元組是序列類型中比較特殊的類型,因為它一旦創建就不能被修改。元組類型在表達固定數據項、函數多返回值、多變量同步賦值、循環遍歷等情況下十分有用。Python中元組采用逗號和圓括號(可選)來表示。一個元組可以作為另一個元組的元素,可以采用多級索引獲取信息。
元組用 () 標識。內部元素用逗號隔開。但是元組不能二次賦值,相當于只讀列表

tuple = ('runoob', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'xue')print(tuple) # 輸出完整元組
print(tuple[0])  # 輸出元組的第一個元素
print(tuple[1:3]) # 輸出第二個至第四個(不包含)的元素
print(tuple[2:])  # 輸出從第三個開始至列表末尾的所有元素
print(tinytuple * 2)  # 輸出元組兩次
print(tuple + tinytuple)  # 打印組合的元組

在這里插入圖片描述
注:元組不允許更新,而列表是允許更新的

三種序列類型的區別

  • 字符串是由單一字符組成的不可修改的序列類型。
  • 列表是一個可以修改的序列類型,使用相對更加靈活。
  • 元組是一個不可變的序列類型,構建好以后不可以進行任何修改。

字符串是不可變的,而列表和元組是可變的。
字符串和元組一旦創建就不能修改,而列表可以進行修改。
元素的類型可以是任意的,但是元組和字符串的元素類型必須一致。
字符串使用單引號或雙引號,列表和元組使用方括號和小括號來定義。

集合類型

四種操作符

Python 中的集合與數學中集合的概念是一致的,因此,兩個集合可以做數學意義上的交集并集、差集計算等

操作符的運算描述
S-T返回一個新集合包括在集合S中但不在集合T中的元素
S&T返回一個新集合包括同時在集合S和集合T中的元素
S^T返回一個新集合包括集合S和集合T中的非共同元素
ST返回一個新集合包括集合S和集合T中的所有元素

集合

在Python中,集合類型是一種可變的、無重復元素的無序集合。Python提供了兩種集合類型:set和frozenset。

set

set是一個可變集合,可以通過添加、刪除元素來修改集合。創建set可以通過花括號{}或者set()函數來實現。

s = {1, 2, 3}  # 創建一個集合包含元素1、2、3

frozenset

rozenset是一個不可變集合,創建后不能再添加或刪除元素。創建frozenset可以使用frozenset()函數。

fs = frozenset([4, 5, 6])  # 創建一個不可變集合包含元素4、5、6

常見的集合類型操作函數

S.add(x):如果數據域x不在集合S中,將x增加到s
S.remove(x):如果x在集合S中,移動該元素;不在產生KeyError異常
S.clear():移除S中所有數據域
len(S):返回集合S元素個數
x in S:如果x是S的元素,返回True,否則返回Flase
x not in S:如果x不是S的元素,返回True,否則返回Flase

映射類型

字典

字典是 Python 中內置的映射類型。映射是通過鍵值查找一組數據值信息的過程,由 key-value的鍵值對組成,通過 key 可以找到其映射的值 value。

字典可以看作是由鍵值對構成的列表。在搜索字典時,首先查找鍵,當查找到鍵后就可以直接獲取該鍵對應的值。這是一種高效、實用的查找方法。這種數據結構之所以被命名為字典,是因為它的存儲和檢索過程與真正的字典類似。鍵類似于字典中的單詞,根據字典的組織方式(例如,按字母順序排列)找到單詞(鍵)非常容易,找到鍵就能找到相關的值(定義)。但反向的搜索,使用值去搜索鍵則難以實現。
字典中的值并沒有特殊的順序,它們都存儲在一個特定的鍵(key)里。鍵可以是數字、字符串以及元組等。此外,字典中的元素(鍵值對)是無序的。當添加鍵值對時,Python會自動修改字典的排列順序,以提高搜索效率,且這種排列方式對用戶是隱藏的。

dicts 為字典名,key 為鍵,value 為值
建立模式:
{<鍵1>:<值1>, <鍵2>:<值2>, … , <鍵n>:<值n>}

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'runoob', 'code': 6734, 'dept': 'sales'}
print(dict['one'])  # 輸出鍵為'one' 的值
print(dict[2])  # 輸出鍵為 2 的值
print(tinydict)  # 輸出完整的字典
print(tinydict.keys()) # 輸出所有鍵
print(tinydict.values())  # 輸出所有值

在這里插入圖片描述

字典類型的常用方法

在這里插入圖片描述

數據類型轉換

在這里插入圖片描述
來源:菜鳥教程 Python變量類型
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41497.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41497.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41497.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CSS in Depth 2精譯】2.5 無單位的數值與行高

當前內容所在位置 第一章 層疊、優先級與繼承第二章 相對單位 2.1 相對單位的威力2.2 em 與 rem2.3 告別像素思維2.4 視口的相對單位2.5 無單位的數值與行高 ??2.6 自定義屬性2.7 本章小結 2.5 無單位的數值與行高 有些屬性允許使用無單位的數值&#xff08;unitless value…

【數據結構與算法】快速排序挖坑法

&#x1f493; 博客主頁&#xff1a;倔強的石頭的CSDN主頁 &#x1f4dd;Gitee主頁&#xff1a;倔強的石頭的gitee主頁 ? 文章專欄&#xff1a;《數據結構與算法》 期待您的關注 ?

前端面試題16(跨域問題)

跨域問題源于瀏覽器的同源策略&#xff08;Same-origin policy&#xff09;&#xff0c;這一策略限制了來自不同源的“寫”操作&#xff08;比如更新、刪除數據等&#xff09;&#xff0c;同時也限制了讀操作。當一個網頁嘗試請求與自身來源不同的資源時&#xff0c;瀏覽器會阻…

網絡配置文件中type

在網絡配置文件中&#xff0c;type是一個參數&#xff0c;用于指定網絡接口的類型。它指定了網絡接口所使用的協議或技術。 以下是一些常見的type參數值&#xff1a; “ethernet”&#xff1a;表示以太網接口&#xff0c;用于連接以太網設備&#xff0c;如有線網卡。 “wifi”…

Python實現ABC人工蜂群優化算法優化隨機森林回歸模型(RandomForestRegressor算法)項目實戰

說明&#xff1a;這是一個機器學習實戰項目&#xff08;附帶數據代碼文檔視頻講解&#xff09;&#xff0c;如需數據代碼文檔視頻講解可以直接到文章最后獲取。 1.項目背景 人工蜂群算法(Artificial Bee Colony, ABC)是由Karaboga于2005年提出的一種新穎的基于群智能的全局優化…

PD虛擬機不能復制Mac的文件怎么回事 PD虛擬機不能復制Mac的文件怎么辦 Parallels Desktop怎么用

PD虛擬機不僅能提供跨系統協作的服務&#xff0c;還能進行虛擬機系統與原生系統間的文件共享、文本復制、文件復制等操作&#xff0c;讓系統間的資源可以科學利用。但在實際操作過程中&#xff0c;PD虛擬機不能復制Mac的文件怎么回事&#xff1f;PD虛擬機不能復制Mac的文件怎么…

linux centos7.9 安裝mysql5.7;root設置客戶端登錄、配置并發、表名大小寫敏感等

查看centos版本 cat /etc/centos-releasecentos版本為7.9 查看是否已安裝mariadb,安裝了需要先刪除 1.查看是否安裝了mariadb和mysql,安裝了需要先刪除 mariadb是mysql的一個分支,但要安裝mysql需要刪除它 執行rpm -qa|grep mariadb,查看mariadb情況 查找到有就刪除 執行…

中小學白名單編程競賽:精英競技場的深度解析

目錄 1. 引言2. 特點3. 為什么參加白名單編程競賽4. 具體競賽介紹4.1 全國中小學信息技術創新與實踐大賽(NOC大賽)4.1.1 面向對象4.1.2 考試內容4.1.3 賽事特點4.1.4 報名時間4.1.5 含金量4.1.6 優缺點4.1.7 賽事流程4.2 藍橋杯大賽4.2.1 面向對象4.2.2 考試內容4.2.3 賽事特…

Day59 動態規劃part12

LC115不同的子序列&#xff08;未掌握&#xff09; 遞推公式與LC392類似&#xff0c;但是初始化略有不同 LC392的dp數組含義為相同字符個數而本體的dp數組含義為出現的次數&#xff0c;因此dp[i][0]1 兩種情況 s[i-1]t[j-1] dp[i][j] dp[i-1][j-1]dp[i][j] dp[i-1][j] s[…

Kubernetes集群性能測試之kubemark集群搭建

Kubernetes集群性能測試之kubemark集群搭建 Kubemark是K8s官方提供的一個對K8s集群進行性能測試的工具。它可以模擬出一個K8s cluster&#xff08;Kubemark cluster&#xff09;&#xff0c;不受資源限制&#xff0c;從而能夠測試的集群規模比真實集群大的多。這個cluster中ma…

運維鍋總詳解系統啟動流程

本文詳細介紹Linux及Windows系統啟動流程&#xff0c;并分析了它們啟動流程的異同以及造成這種異同的原因。希望本文對您理解系統的基本啟動流程有所幫助&#xff01; 一、Linux系統啟動流程 Linux 系統的啟動流程可以分為幾個主要階段&#xff0c;從電源開啟到用戶登錄。每個…

Java筆試|面試 —— 對繼承性的理解

面試/筆試&#xff1a;談談對繼承性的理解>繼承性的好處&#xff1a;-減少了代碼的冗余&#xff0c;提高了復用性-提高了擴展性&#xff08;父類統一擴展、繼承后擴展&#xff09;-為多態的使用&#xff0c;提供了前提>Java中繼承的特點-局限性&#xff1a;類的單繼承性。…

有一個日期(Date)類的對象和一個時間(Time)類的對象,均已指定了內容,要求一次輸出其中的日期和時間

可以使用友元成員函數。在本例中除了介紹有關友元成員函數的簡單應用外&#xff0c;還將用到類的提前引用聲明&#xff0c;請讀者注意。編寫程序&#xff1a; 運行結果&#xff1a; 程序分析&#xff1a; 在一般情況下&#xff0c;兩個不同的類是互不相干的。display函…

關于Java異常機制及finally關鍵字的詳解

異常機制(Exception) 軟件程序在運行過程中&#xff0c;非常可能遇到異常問題。常見的異常&#xff1a; 1、用戶輸入錯誤 2、設備錯誤 3、硬件問題&#xff0c;例如打印機關掉、服務器問題 4、物理限制&#xff1a;磁盤滿了 Java是采用面向對象的方式來處理異常的。 處理過程…

基于Java的水果商品銷售網站

1 水果商品銷售網站概述 1.1 課題簡介 隨著電子商務在當今社會的迅猛發展&#xff0c;水果在線銷售已逐漸演變為一種極為便捷的購物方式&#xff0c;日益受到人們的青睞。本系統的設計初衷便是構建一個功能完備、用戶體驗友好的水果銷售平臺&#xff0c;致力于為用戶提供優質、…

Xcode簡介

Xcode 是蘋果公司為 macOS 平臺開發的一款集成開發環境&#xff08;Integrated Development Environment&#xff0c;IDE&#xff09;&#xff0c;主要用于開發 iOS、iPadOS、macOS、watchOS 和 tvOS 的應用程序。Xcode 包含了一系列的軟件開發工具&#xff0c;涵蓋了從編寫代碼…

【植物大戰僵尸雜交版】獲取+存檔插件

文章目錄 一、還記得《植物大戰僵尸》嗎&#xff1f;二、在哪下載&#xff0c;怎么安裝&#xff1f;三、雜交版如何進行存檔功能概述 一、還記得《植物大戰僵尸》嗎&#xff1f; 最近&#xff0c;一款曾經在15年前風靡一時的經典游戲《植物大戰僵尸》似乎迎來了它的"文藝復…

漸開線花鍵測量學習筆記分享

大家好&#xff0c;繼續漸開線花鍵的相關內容&#xff0c;本期是漸開線花鍵測量相關的學習筆記分享&#xff1a; 花鍵檢測項目有花鍵大徑和小徑檢驗&#xff1b;內花鍵齒槽寬和外花鍵齒厚&#xff0c;以及漸開線終止圓 和起始圓直徑檢測&#xff1b;齒距累計誤差 、齒形誤差 、…

排序算法簡述(第八jiang)

目錄 排序 選擇排序 O(n2) 不穩定&#xff1a;48429 歸并排序 O(n log n) 穩定 插入排序 O(n2) 堆排序 O(n log n) 希爾排序 O(n log2 n) 圖書館排序 O(n log n) 冒泡排序 O(n2) 優化&#xff1a; 基數排序 O(n k) 快速排序 O(n log n)【分治】 不穩定 桶排序 O(n…

Mysql-常用函數及其用法總結

1、字符串函數 測試用例如下&#xff1a; 1.1 CONCAT() 將多個字符串連接成一個字符串。 SELECT CONCAT(first_name, , last_name) AS full_name FROM users; -- 期望結果&#xff1a;John Doe, Jane Smith, Michael Johnson 1.2 SUBSTRING() 提取子字符串 SELECT SUBSTR…