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

歡迎訪問 生活随笔!

生活随笔

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

python

列表逆序排序_Python零基础入门学习05:容器数据类型:列表和元组

發布時間:2024/10/8 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 列表逆序排序_Python零基础入门学习05:容器数据类型:列表和元组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

:本文所有代碼均經過Python 3.7實際運行檢驗,保證其嚴謹性。

Python的數據收納盒

數據收納盒

收納數據對象的數據類型,以一種規則的下標索引方式訪問到每個數據,是一種序列(sequence)。序列可以看作是數據收納盒,它能收納數字、字符串等基本數據類型,并將之編好有序的號碼進行存放。這種編號就是索引(index)。

列表(list)和元組(tuple)均屬于序列

列表可以刪除、添加、替換、重排其中的元素,是可變(mutable)序列類型。

元組不能更改,和字符串一樣,是不可變(immutable)序列類型。凡是涉及到元組、字符串等不可變序列類型的各種改變如刪除、添加、替換、重排等操作,都是生成一個新的元組、字符串,而原來的元組和字符串均保持不變。

關于序列的更多詳細內容請見:Python隨筆:Python內置序列函數之enumerate函數的前半部分。

上一節說過,字符串有兩套編號:

  • 從左向右的編號,采用非負整數編號。從0開始編號,向右依次加1。對s = 'abc'而言,s[0] = 'a'表示s的第1個元素,s[1] = 'b'表示s的第2個元素,依此類推。
  • 從右向左的編號,采用負整數編號。從-1開始,向左依次減1。對s = 'abc'而言,s[-1] = 'c'表示s的倒數第1個元素,s[-2] = 'b'表示s的 倒數第2個字符,依此類推。

列表和元組也是一樣的。如下所示:

l = ['a', 'b', 'c']l[0]Out[2]: 'a'l[-1]Out[3]: 'c't = ('a', 'b', 'c')t[0]Out[5]: 'a't[-1]Out[6]: 'c'

列表和元組其余的操作如切片、查找(in、index、count)跟字符串相同,還有計算(sum、min/max)也是如此。

ls = ["cat", "dog", "tiger", 1024]ls[1: 2] = [1, 2, 3, 4] #切片print(ls)
列表、元組的創建
#創建列表:l = []l = list()l = [x for x in iterable] #使用列表推導式創建列表。#創建元祖:t = ()t = tuple()
元祖的單例(singleton)

元組還可以是單例(singleton),即只有一個元素在里面,如:

t1 = ('a', )

值得注意的是,當元組是單例時,里面僅有的1個元素后面必須跟一個逗號“,”。逗號“,”表明了這是個元組里面的元素,而不是只是一個字符串或者數字或者字符等;若沒有逗號,則括號會被當作是運算的符號。

元組甚至也可以不要括號,直接用“,”。所以,對元組而言,括號可以沒有,但逗號一定要有。

t1 = ('a',) # 帶“,”的才是元組type(t1)Out[8]: tuplet2 = ('a') # 不帶“,”是字符串或整數。type(t2)Out[10]: strtype(t3)Out[12]: tuplet4 = 1, 2, 3type(t4)Out[14]: tuple
列表的可變性

列表有一個非常重要的與眾不同之處,那就是列表是可變的(mutable)。

這個特性與其它數據類型都不相同,因為int、float、string和tuple等數據類型一旦創建后都是不可變的(immutable)。你不能通過訪問string或者tuple里的某個元素來改變他們。比如tuple一旦下了定義,再想用tuple[0]= 2這種賦值方法改變tuple時,系統將會報錯。

而列表lists則可以通過訪問某些內部元素進而改變它們的值,有時候這是非常方便的。

可變性使得程序可以被更靈活地處理。盡管如此,同樣也很容易造成程序設計錯誤。

l = [1, 2, 3, 4]l[0] = ['a']l[-1] = 'd'lOut[18]: [['a'], 2, 3, 'd']
列表的操作

增長:.append()/.insert()/.extend()

縮減:.pop()/.remove()/.clear()

重新組織:.reverse()/.sort()

以s為可變類型的序列為例,其方法如下:

s.append(x)——將 x 添加到序列的末尾 (等同于 s[len(s):len(s)] = [x])。

s.insert(i, x)——在由 i 給出的索引位置將 x 插入 s (等同于 s[i:i] = [x])。

s.extend(t) 或 s += t——用 t 的內容擴展 s (基本上等同于 s[len(s):len(s)] = t)。

s.pop([i])——提取在 i 位置上的項,并將其從 s 中移除。可選參數 i 默認為 -1,因此在默認情況下會移除并返回最后一項。

s.remove(x)——刪除 s 中第一個 s[i] 等于 x 的項目。當在 s 中找不到 x 時 remove() 操作會引發 ValueError。返回值為None。

s.clear()——從 s 中移除所有項 (等同于 del s[:])。包括 clear() 和 copy() 是為了與不支持切片操作的可變容器 (例如 dict 和 set) 的接口保持一致。

s.reverse()——就地將列表中的元素逆序。當反轉大尺寸序列時 reverse() 方法會原地修改該序列以保證空間經濟性。 為提醒用戶此操作是通過間接影響進行的,它并不會返回反轉后的序列。

s.sort(*, key=None, reverse=False)——此方法會對列表進行原地排序,只使用 < 來進行各項間比較。 異常不會被屏蔽 , 如果有任何比較操作失敗,整個排序操作將失敗(而列表可能會處于被部分修改的狀態)。

合并:加法運算+,連接2個列表,生成1個新的列表。

下面是列表操作的一些例子:

l = [1, 2, 3, 4]l[0] # 訪問l中的index=0(即列表中的第1個)的元素。Out[20]: 1l.append(5) # 在l的尾部添加一個新的元素。lOut[22]: [1, 2, 3, 4, 5]l.reverse() # 使l中的元素逆序排列,并改變了l自身。lOut[24]: [5, 4, 3, 2, 1]l.clear() # 清空l中的所有元素,使得l成為一個空列表。lOut[26]: [][1, 2, 3] + [4, 5]Out[27]: [1, 2, 3, 4, 5]

To be continued.

總結

以上是生活随笔為你收集整理的列表逆序排序_Python零基础入门学习05:容器数据类型:列表和元组的全部內容,希望文章能夠幫你解決所遇到的問題。

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