日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中有了列表,为什么还有元组?

發布時間:2025/3/20 python 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中有了列表,为什么还有元组? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python中有一個基礎的數據結構,叫做元組(tuple),但是一般挺少有人會去用它的,因為在開發過程中,列表(list)基本已經能夠滿足我們的需求。

即使是這樣,你也千萬不要就此認為元組是多余的。不然在面試中也不會經常被人問,元組和列表有啥區別?為什么需要元組?

以下兩點,第一點是大家所熟知的,而第二點可能只有老司機才會知道,只有學習了第二點,才算真正理解了元組存在的價值和意義。

1. 不可變列表

這是元組區別于列表最顯著的特征。

  • list:可變的序列
  • tuple:不可變的序列

那什么是不可變的序列呢?

那就是在元組對象生成后,諸如列表的插入元素、刪除元素、添加元素、清空元素、修改元素等功能,在元組中通通沒有,你是無法對其進行修改的。

由于元組是不可變的,所以其方法也是很有限的。這里羅列一下。

# s1和s2都是元組 s1=(1,2,3) s2=(4,5,6)# 拼接生成新元組 s1+s2 s1.__add__(s2)# 是否包含 2 in s1 s1.__contains__(2)# 統計元素包含的次數 s1.count(2)# 獲取元素 s1[0] s1.__getitem__(0)# 找到2第一次出現的索引 s1.index(2)# 獲取長度 len(s1)# 重復拼接 s1*n

2. 具名元組

這個特性,我個人認為,才是元組存在的意義所在。

只講 具名元組,可能不太好理解。如果稱之為 帶字段名的記錄,你可能就清楚了。

這里舉個例子,但是實現帶字段名,需要一個庫(collections)的支持,你需要導入它。

''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' from collections import namedtuple # 生成一個City類 City = namedtuple("City", "name country polulation coordinates") # 實例化 tokyo = City("Tokyo", 'JP', '36.93', ('35.68','139,69'))print(tokyo) # City(name='Tokyo', country='JP', polulation='36.93', coordinates=('35.68', '139,69'))print(tokyo.name) # Tokyo

看著有點像字典,是不是,但是他不是字典(獲取數值的方法也與字典不同),字典是可變。元組在創建后,就無法再對其進行修改。這在某個程度上說明元組適合存放那些無需修改的數據。比如上面的,地名,國家,經緯度。

除了上面的用法之處,這里還要介紹一些元組自己專有的屬性。

# 打印字段名 print(City._fields) ('name', 'country', 'polulation', 'coordinates')# 生成新實例 LatLong = namedtuple('LatLong', 'lat long') Xiamen_tuple = ('Xiemen', 'China', '40,54', LatLong(24.26,118.03)) Xiamen = City._make(Xiamen_tuple)print(Xiamen) # City(name='Xiemen', country='China', polulation='40,54', coordinates=(24.26, 118.03))# 將具名元組轉為OrderDict Xiamen_dict = Xiamen._asdict() print(Xiamen_dict) # OrderedDict([('name', 'Xiemen'), ('country', 'China'), ('polulation', '40,54'), ('coordinates', LatLong(lat=24.26, long=118.03))])

總結一下,元組是一種很強大的可以當作記錄來用的數據類型,這才是他存在的價值和意義所在。而為人所熟知的,它的第二個角色才是充當一個不可變的列表。

Python基礎太難學?小編創建了一個Python學習交流QQ群:531509025,群里有大量基礎入門知識,都是從零開始的,群里還有專業的人給你解答問題。尋找有志同道合的小伙伴,互幫互助,群里還有不錯PDF電子書!

總結

以上是生活随笔為你收集整理的Python中有了列表,为什么还有元组?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。