首頁  >  文章  >  後端開發  >  Python學習之列表和元組的使用詳解

Python學習之列表和元組的使用詳解

WBOY
WBOY轉載
2022-11-02 15:51:512028瀏覽

本篇文章為大家帶來了關於Python的相關知識,其中主要介紹了關於列表和元組的使用詳解,包括了列表的聲明語法、列表的讀取、列表操作、元素的基本知識與操作等等內容,下面一起來看一下,希望對大家有幫助。

【相關推薦:Python3影片教學

清單與元組簡介

如果說在Python語言中找一個最優秀的資料類型,那無疑是列表,如果要在推荐一個,那我選擇元組,本篇博客我們的重心會放在列表上,元組可以看成不能被修改的列表,所以作為贈品 進行學習即可。

清單是一種非常靈活的資料結構,可以彌補前文字串類型的許多不足。

正式學習前,還需要記住兩個英文單詞,列表(list),元組 (tuple)。

列表學習要點

先看一遍列表定義:

列表是可變序列,也是一種可儲存任意資料類型的容器,用中括號([])表示開始和結束,內部各元素使用英文逗號(,)分隔,每個元素都可稱為項目,並且每個元素都有一個索引,也被稱為下標。

列表的聲明語法

聲明一個列表,可以參考下述幾種格式。

使用空中括號[] 宣告一個空列表

my_list = []
print(my_list)

宣告包含一個元素的清單

my_list = [1]
print(my_list)

#聲明包含多個元素的清單

my_list = [1,2]
print(my_list)

聲明包含多個不同資料類型元素的清單

my_list = [1,'a',True]
print(my_list)

##」一個清單中包含清單

my_list = [1,['a'],[True,1,1]]
print(my_list)

清單的讀取

讀取清單中最重要的概念是下標,也叫做位置或索引。下標從 0 開始計數,即清單內第一項元素的索引是 0,例如下述代碼,讀取數字 2。

my_list = [1,2,3,4,5]
print(my_list[1]) # 数字2所在的下标为1

列表操作

列表是一個動態容器,其支援對其元素的增加,刪除,修改,查詢,合併等操作,用到的都是字典物件的方法,基本運算的方法名稱如下:

  • append():結尾追加元素;
  • extend():結尾追加列表,也可以理解為兩個列表合併;
  • insert():在指定位置插入元素;
  • copy():列表複製;
  • clear():清除清單;
  • count():統計列表指定元素數量;
  • pop():刪除並傳回指定下標對應的元素;
  • #remove():刪除清單中指定元素;
  • index():取得指定元素的下標;
  • reverse():反轉元素;
  • sort ():對清單元素進行排序。

清單元素新增方法

從上述清單中,可以查看到清單追加元素,有兩種方法可以實現,其一是使用

append() 方法,其二是使用insert() 方法,範例程式碼如下所示:

my_list = [1,2,3,4,5]
my_list.append(888)
my_list.insert(1,666)
print(my_list)

對比上述兩個方法的差異,可以看到

append() 僅能在裡列表末尾追加元素,而insert() 方法可以在任意位置插入元素,即insert() 方法的第一個參數為索引,表示插入位置。

列表元素查找方法

在列表中尋找某一元素,使用

index() 方法實現,該方法的語法格式如下所顯示:

my_list.index(value,[start[,stop]])

其中

my_list 是待尋找目標列表,value 表示待尋找的值,startstop 為可選參數,表示開始尋找的索引值和結束查找的索引值,該方法當查找到元素後,會傳回第一個找到的元素索引位置,例如下述程式碼,會傳回3

my_list = [1,2,3,4,5]
ret = my_list.index(4)
print(ret)

如果方法沒有在目標清單中找到元素,會報錯,錯誤型別為

ValueError

index() 方法外,列表的讀取其實也是元素查找方式,例如讀取下標2 的元素,程式碼如下:

my_list = [1,2,3,4,5]
ret = my_list[2]
print(ret)

還可以使用成員運算子

in,對清單進行判斷,關於成員運算子的更多知識,後期總結運算子的時候,會詳細說明。以下程式碼會傳回 True,即表示數字 2 在清單中。

my_list = [1,2,3,4,5]
ret = 2 in my_list
print(ret)

在列表中還有一個重要知識點,即列表切片,學習該知識點需要先牢牢掌握列表按索引讀取相關語法,切片的語法格式如下:

my_list = [1,2,3,4,5]
ret = my_list[1:3:2]
print(ret)

可以看到上述第二行程式碼,在原始清單讀取的規則之上,格式變成

[1:3:2],將其轉換為中文文法說明如下所示:

my_list[起始索引:结束索引:步长]

使用切片的时候,英文冒号不能缺少,起始索引为必选项,结束索引和步长为可选项。

如果理解困难,最好的办法就是反复用代码校验。

# 缺省结束索引,默认获取到列表结尾元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:]
print(ret) # 输出 [2, 3, 4, 5, 6, 7, 8, 9, 10]

# 缺少步长,默认按照索引+1解决,同时不包含结束索引代表的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:5]
print(ret) # 输出 [2, 3, 4, 5]

# 步长设置为2,表示索引每次+2
my_list = [1,2,3,4,5,6,7,8,9,10]
ret = my_list[1:6:2]
print(ret) # 输出 [2, 4, 6]

上述代码如何理解已经在注释中进行说明,重点要掌握的切片知识点整理如下:

一首打油诗送给大家~

切片不能丢冒号 结束步长可不要 默认索引都加一 左闭右开要牢记

列表元素的修改和删除

前文已经掌握了列表的读取,将读取到的元素重新赋值就是列表的修改,例如下述代码。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
print(my_list)

列表元素删除 在 Python 中,提出了多种列表元素删除的方式,本小节学习三个列表元素删除的方法,即 clear()pop()remove(),除此之外还可以使用 del() 函数对列表元素进行删除。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
my_list.clear() # 列表清空
print(my_list)

使用 pop() 方法删除列表元素,默认从尾部删除,并返回被删除的元素。

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.pop()
print(my_list) # 删除最后一项
print(ret) # 返回被删除的元素

pop() 方法中可以传递一个 index 值,该值表示下标值,即删除指定位置的元素,与之对应的是 remove() 方法的参数,该值表示待删除的目标元素,例如在列表中删除元素 5,使用的代码如下:

my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
ret = my_list.remove(5)
print(my_list)
print(ret)

测试之后,可以发现 remove() 方法无返回值,并且该方法只删除第一个匹配到的元素,也就是当列表中有多个目标元素时,只有最先匹配到的元素被删除。

del() 函数可以删除列表中指定元素,也可以直接删除列表对象,代码如下:

# 删除索引位置为5的元素
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del(my_list[5])
print(my_list)


# 删除整个列表对象
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list[1] = 666
del my_list
print(my_list)

列表元素合并

使用 extend() 方法可以将列表进行合并:

my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list1.extend([666,777,888])
print(my_list1)

注意 extend() 方法不会生成新的列表。

列表合并也可以使用加号(+) 实现,该语法会产生一个新的列表。

my_list1 = [1,2,3]
my_list2 = [666,777,888]
my_list = my_list1 + my_list2
print(my_list)

列表元素顺序变化

列表排序用到的方法是 sort(),该方法默认按照 ASCII 进行增序或者减序排列,测试代码如下所示:

my_list = [4,1,2,6,7,3,8,12,10]
my_list.sort()
print(my_list)

sort() 方法中也有 2 个参数,格式如下:

my_list.sort(key=None,reverse=False)

参数 key 为可选参数,可以传入一个函数名,该函数会作用与列表中的每一项元素,例如将列表中每一项元素都转换为小写字母。

my_list = ['ABC','CDS','Juejin','YUE']
my_list.sort(key=str.lower)
print(my_list)

sort() 方法会对原列表进行排序,如果想生成一个新列表,可以使用 sorted() 函数,代码如下:

my_list = ['ABC','CDS','Juejin','YUE']
ret = sorted(my_list)
print(ret)

除此之外,还可以使用 reverse() 方法。

my_list = ['ABC','CDS','Juejin','YUE']
my_list.reverse()
print(my_list)

元组学习要点

元组定义与列表基本一致,只需要做好如下区分即可。

  • 元组不能对其包含的元素进行修改,即元组不可变;
  • 元组用小括号(())表示。

再次进行简单总结:

元组是不可变序列,也是可以包含任意数据类型的容器,用小括号(())表示,元素之间用逗号(,)分隔 。一定要注意的就是不可变序列,不可变的含义是不能对元组进行增加,修改,删除,位置变换等操作。

元组基本知识

声明一个元组

my_tuple = ()
print(my_tuple)
print(type(my_tuple))

声明一个只包含 1 个值的元组,要求必须带一个逗号,否则会按照整数处理。

my_tuple = (1,)
print(my_tuple)
print(type(my_tuple))

声明包含多个值的元组:

my_tuple = (1,2,3,4,5,6,[1])
print(my_tuple)
print(type(my_tuple))

元组的基本操作

由于元组对象的方法使用与列表一致,接下来仅对元组进行罗列。

  • count():统计元组中元素个数;
  • index():返回指定元素的下标。

其余可作用于元组的内置函数如下所示:

  • len():获取元组元素个数;
  • max():返回元组中最大值;
  • min():返回最小值;
  • tuple():将列表转换为元组;
  • type():返回对象类型;
  • del():删除整个元组对象,注意不能删除元组内元素;
  • sum():求和。

【相关推荐:Python3视频教程

以上是Python學習之列表和元組的使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除