Python基礎篇——關於元組(tuple)和列表(list)區別

2021-03-02 碼裡奧編程

一、前言

在Python數據類型中有兩個對象:元組 tuple 和列表 list 。二者寫法和用法十分相似,有的同學就會去網上查找它們之間的區別,查到的無非以下幾種說法:

list 是可變的,元組 tuple 是不可變的。

由於 tuple 不可變,所以使用 tuple 可以使代碼更安全。等等 ...

但是 tuple 究竟有什麼用呢,到頭來還是不知道。

二、元組

其實在很多比較「資深」的程式語言裡一開始都是沒有元組的,比如:Java、C++、C# 等,但是由於元組的靈活和便捷性,最後這些程式語言也都紛紛加上了。並且很多年輕的程式語言 Python、Scala 等,一開始就內置了元組類型。之所以元組這麼受歡迎,其實最關鍵的一點是它的語法的靈活和便捷性,提高了編程體驗。其中最大的一個特性就是使函數可以返回多個值,這個特性很常用。

1. 函數返回多個值

函數是可以返回多個值的。如:

這裡的結果就是一個返回坐標值(x , y)的函數,我們同時獲取了多個值 x 和 y 。

那麼,這和元組有什麼關係呢?

其實這裡存在一個假象,Python函數返回的值本質上還是一個單值,看下面代碼:

從列印結果來看,這裡的返回值就是一個元組。因為在語法上返回一個tuple是可以省略括號的,而多個變量可以同時接收一個tuple,按位置賦給對應的值。所以,當Python的函數返回多個值時,其實就是返回一個tuple類型的結果。有沒有覺得 tuple 使結果的獲取更簡單了呢?

2. tuple 不可變的好處

相對於 list 而言,tuple 是不可變的。這使得它可以作為字典的 key,或者扔進 set 集合裡,而 list 則不行。

tuple 放棄了對元素的增刪(內存結構設計上變的更精簡),換取的是性能上的提升:創建 tuple 比 list 要快,存儲空間比 list 佔用更小。從而也就出現了「能用 tuple 的地方就不用 list」的說法。

多線程並發的時候,tuple 是不需要加鎖的,不用擔心安全問題,編寫也簡單多了。

元組可以被修改嗎?

1、創建和訪問一個元組如果創建一個空元組,直接使用小括號即可;
如果要創建的元組中只有一個元素,要在它的後面加上一個逗號『,』。

元組裡只有一個元素的時候,逗號非常重要。

2、修改和刪除元組

直接在同一個元組上修改是不可行的,但是可以通過拷貝現有的元組片段構造一個新的元組的方式解決。
通過分片的方法讓元組拆分成兩部分,然後再使用連接符(+)合併成一個新元組,最後將原來的變量名(temp)指向連接好的新元組。在這裡就要注意了,逗號和小括號都是必須的。

刪除元組中的元素:對於元組是不可變的這一點來說,單獨刪除一個元素是不可能的。但是,我們可以利用切片的方式更新元組,間接的刪除掉一個元素。

平時很少用del去刪除整個元組,因為Python的回收機制會在這個元組不再被使用的時候自動刪除。

最後,in 和 not in 也可以直接用在元組上,跟列表是一樣的。

相關焦點

  • Python的List與Tuple
    和字符串一樣,列表同樣可以被索引和截取,列表被截取後返回一個包含所需元素的新列表。列表截取的語法格式如下:變量[頭下標:尾下標]索引值以 0 為開始值,-1 為從末尾的開始位置。加號(+)是列表連接運算符,星號(*)是重複操作。
  • 一分鐘學Python|Python的列表和元組
    list和tuple首先來一波簡單粗暴的對比:1、python中的列表list是變量,而元組tuple是常量。簡單地說元組是固定不可改變的,意味著一旦被創建它的內容無法被修改;列表則不同,被創建可根據自己的想法隨意改變,同時改變列表的函數方法也有很多。
  • Python數據類型之元組tuple
    # 元組(tuple)是 Python 中另一個重要的序列結構,和列表類似,元組也是由一系列按特定順序排序的元素組成。
  • 從零開始學Python-Day9-集合list和元組tuple
    如果一個list為空,即裡面沒有元素,那麼他的長度也就len應該等於0tupletuple叫做元組,它跟list最大的區別就是一旦初始化就不允許再變化,所謂初始化就是給它賦值。注意這裡跟list的區別,元組tuple的內容是以()括起來的,list是用[]因為是不可變化的,自然就沒有辦法增加、刪除、替換元素了。元組內元素的定位跟list一樣,用[]擴住的序號表示,從第一位開始0,1,2….
  • 元組(tuple)-Python基本數據類型之四
    在python中,元組這種數據結構同列表類似,都可以描述一組數據的集合,它們都是容器,是一系列組合的對象,不同的地方在於,元組裡的元素是不能更改的,它們之間的差異性我們用一個例子來說明一下:列表:,而元組一般用於描述一個東西的特性,例如上面的例子,描述了一個學生的學號、姓名、出生年月、年齡和身高,下面我們具體來學習元組這種數據類型;聲明使用小括號對元組進行聲明
  • Python學習筆記:列表、元組和字典
    第3章 列表、元組和字典python內置的三種常見數據結構:列表(list)、元組(tuple)和字典(dict)。這三種數據結構都可用於保存多個數據項。列表和元組比較相似,它們都按順序保存元素,每個元素都有自己的索引,因此列表和元組都可通過索引訪問元素。二者的區別在於列表是可修改的,元組不可修改。字典則以key-value的形式保存數據。
  • 數據類型介紹——tuple、list和range對象
    [14]: for i in list_3:...:     print(i)輸出結果為:2、元組(tuple)(1)定義元組元組使用圓括號「()」與逗號「,」來創建,同樣可以包含任意數據類型,其定義方法主要有以下幾種:In [15]: 1,'python',2.3In [16]: tuple
  • Python容器:列表與元組
    與字符串不同的是,元組和列表並不要求所有元素的種類相同,每個元素都可以是任何python類型的對象。列表可變,賦值後可插入或刪除其中的元素。元組不可變,賦值後不可更改。1.列表1.1使用[]或list[]創建列表使用[]創建列表:>>>empty=[]>>>weekdays=['Monday','Tuesday','Wednesday']使用list()創建列表:>>>another_empty_list=list() #返回空列表
  • Python入門14-元組tuple
    另一種有序列表叫元組(tuple)。tuple和list非常類似,但是tuple一旦初始化就不能修改。
  • Pyhton中的數據結構 | 列表和元組如何進行選擇
    這裡總結一下Python中的內置數據結構(Built-in Data Structure):列表list、元組tuple涵蓋的僅有部分重點,詳細地去介紹每個知識點並未涉及。在之前的內容中,我們知道了list列表,tuple元組數據結構,這一節中,我們深入探討下列表和元組。首先,我們需要弄清楚最基本的概念,什麼是列表和元組呢?
  • Python——list列表和tuple元組
    list列表是Python內置的一種數據類型。list是一種有序的集合,可以隨時添加和刪除其中的元素。比如,列出班裡所有同學的名字,就可以用一個list表示:classmates = ['張三', '李四', '王五']print(classmates)運行結果如下:變量classmates就是一個list。
  • python編程入門八:列表、元組、字符串的轉換及補充方法
    所以python中也可以輕易的實現三種類型之間的轉換,當然本篇文章還會補充和它們相關的一些方法。所以給列表起名為「list1」、「list2」不是沒理由的,但是在這裡,list()又變成了一種方法,他的作用是可以將一個「可迭代對象」轉換為列表,關於迭代,我在一本書上看到了一個比較好理解的說法:所謂迭代,就是重複反饋的過程,其目的通常是為了接近並達到所需的結果。
  • 一文看懂Python列表、元組和字符串操作
    >>> list = [ [1,2,3,4], ["a","b","c"] ],定義列表的列表。>>> list = [ (1,2,3,4), ("a","b","c") ],定義元組列表。
  • 2.1 Python基礎知識(List和Tuple)
    一、List類型1.python創建List說明:Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。構造list非常簡單,按照上面的代碼,直接用 [ ] 把list的所有元素都括起來,就是一個list對象。由於Python是動態語言,所以list中包含的元素並不要求都必須是同一種數據類型。
  • Python列表和元組
    @Author :RunsenPython列表和元組總結什麼是列表和元組列表是動態的,長度大小不固定,可以隨意地增加、刪減或者改變而元組是靜態的,長度大小固定,無法增加刪減或者改變定義列表和函數```l = [1, 2, 'hello', 'world'] # 列表中同時含有
  • 10個掌握Python列表,集合,元組的示例
    每個對象都有自己的數據屬性和與之關聯的方法。為了有效和恰當地使用一個對象,我們應該知道如何與它們進行交互。列表、元組和集合是3種重要的對象類型。它們的共同點是,它們被用作數據結構。本文中,我們將看到這些結構如何收集和存儲數據以及我們可以對它們進行的操作。並看到它們之間的異同。讓我們首先簡要解釋一下這些對象是什麼。然後對每個示例進行詳細說明。
  • Python的list、元組、字典、字符串常用方法操作
    list是一種有序的集合,可以隨時添加和刪除其中的元素。列表中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。列表中的數據項用逗號分隔,用方括號括起來。列表裡面可以再套列表,一個裡面套一個列表,叫二維數組;一個裡面套一個列表,裡面的列表再套一個列表,這個叫三維數組,套幾層就是幾維。
  • Python3的基本類型,列表(瘋狂Python)
    本章內容框架結構:1.簡述列表[list],元組[tuple],字典[dict]2.了解一下序列3. List(列表)1.簡述列表[list],元組[tuple],字典[dict]1-1 python內置三種常用的數據結構:list,tuple,dict,都可用於保存多個數據項。
  • 史上最全的Python數據結構:列表和元組用法總結
    1.List列表這個是python裡面用的最多最常用的數據類型,可以通過下標來訪問,可以理解為java或者c裡面的數組.但是功能比數組強大n倍,list可以放任意數量的python對象,可以是字符串,字符,整數,浮點等等都可以,而且創建,
  • python變量類型,列表和元組
    微信公眾號:學點啥玩點啥小白友好型python變量類型,列表和元組# -*- coding: utf-8 -*-"""Created on Mon Jan 25 12:25:55 2021@author: sd"""#第2章.變量和簡單數據類型#變量#1.字符串