首頁 > 軟體

python列表[list]和元組(tuple)詳情

2022-08-23 18:01:59

列表和元組:

list是一種有序的集合,可以隨時新增和刪除其中的元素.
1,建立一個普通列表

List = ['Jack','Bob','Lucy','Rose']
  • Append() 末尾追加元素
  • conunt()列表中某個元素的數量

extend()可以在列表尾部追加包含多個值的另一個序列,而list的append()只能新增一個值.

可以說list的extend方法是有擴充套件列表的作用:

list1 = [1,2,3]
list2 = [7,8,9]
list1.extend(list2)
print(list1)   # [1, 2, 3, 7, 8, 9]

index() 獲取列表中某個元素的索引值,list的索引值從0開始,同樣可以用索引找到元素 list[index],當索引超出了範圍時 ,Python會報一個IndexError錯誤,(索引錯誤)所以,要確保索引不要越界,有的同學說了 那元素多了,又不知道列表中有多少個元素,我想取最後一個怎麼辦呢 第一種辦法,先獲取這個列表的長度,

例如:len(list2) 第二個辦法:list2[-1]

  • insert()在某個索引位置新增某個元素
  • pop()刪除元素 傳遞的是待刪除元素的
  • indexremove()傳遞待刪除元素,如果多個元素一樣,預設刪除第一個
x = ['a', 'b', 'a', 'c', 'd']
x.remove('a')
print (x) # ['b', 'a', 'c', 'd']
  • reverse() 是把原列表中的元素順序從左至右的重新存放,而不會對列表中的引數進行排序整理.
  • 如果需要對列表中的引數進行整理,就需要用到列表的另一種排序方式
  • sort正序排序sort() 許多python初學者,對sort()方法比較糊塗.有的時候會需要一個排序好的列表,而又想儲存原有未排序列表,他們會這麼操作:
a = [5,7,6,3,4,1,2]
b = a.sort()
print( b)  # None

這個時候問題出現了,變數b得到的是一個空值.那麼想要得到排序好的列表,又想保留原列表怎麼辦呢?列表sorted()方法可以幫你實現.

sorted()即可以保留原列表,又能得到已經排序好的列表sorted()操作方法如下:

a = [5,7,6,3,4,1,2]
b = sorted(a)
print('sorted(a)',a)   # [5, 7, 6, 3, 4, 1, 2]
print('b = sorted(a)',b)  # [1, 2, 3, 4, 5, 6, 7]

Tuple 另一種有序列表叫元組: tuple和list非常類似,但是tuple一旦初始化就不能修改,例如:

tuple =[1,2,3,4]
tuple.append(5)
Traceback (most recent call last):
  File "<pyshell#59>", line 1, in <module>
    tuple.append(5)
AttributeError: 'tuple' object has no attribute 'append'

現在,這個tuple不能變了,它也沒有append(),insert()這樣的方法.其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1]

不可變的tuple有什麼意義?
因為tuple不可變,所以程式碼更安全.如果可能,能用tuple代替list就儘量用tuple.
tuple的陷阱:當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,比如:
如果要定義一個空的tuple,可以寫成():但是,要定義一個只有1個元素的tuple,如果你這麼定義:定義的不是tuple,是1這個數!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python規定,這種情況下,按小括號進行計算,計算結果自然是1.

所以,只有1個元素的tuple定義時必須加一個逗號,來消除歧義:

Python在顯示只有1個元素的tuple時,也會加一個逗號,以免你誤解成數學計算意義上的括號.'可變的’tuple:

>>> tuple = (1,2,3,[4,5,6])
>>> tuple
(1, 2, 3, [4, 5, 6])
>>> tuple[3][0]=1
>>> tuple
(1, 2, 3, [1, 5, 6])
>>> tuple[3][1]=2
>>> tuple[3][2]=3
>>> tuple
(1, 2, 3, [1, 2, 3])

表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素.tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的"不變"是說,tuple的每個元素,指向永遠不變.即指向’a’,就不能改成指向’b’,指向一個list,就不能改成指向其他物件,但指向的這個list本身是可變的!

理解了"指向不變"後,要建立一個內容也不變的tuple怎麼做?那就必須保證tuple的每一個元素本身也不能變.

到此這篇關於python列表[list]和元組(tuple)詳情的文章就介紹到這了,更多相關python列表和元組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com