python基礎之序列型別的方法——列表&元組

丶念念相忘丶發表於2022-03-02

Hello大家好,我是python學習者小楊同學,上次跟大家分享關於python的數值型別和序列型別,本次就承接上一節的內容,說一說序列型別的方法。
序列型別的方法,簡單的來說就是四個字:增刪改查。隨著我們學習的深入,我們將會一直圍繞著四個字來進行程式的編寫及實現,接下來我們就一起學習吧!

列表的方法

首先登場的選手是python的列表,列表屬於可變型別,所以它將有完整的增刪改查方法,讓我們一起來看看具體是什麼。

增,故名思意就是可以對列表進行新增元素的操作,python的列表提供了三種新增元素的操作,分別是:append() ,insert(), extend()

append()

首先是append(),它可以將一個元素追加到列表的末尾。
舉個例子:

li = [1, 2, 3, 4, 5]
li.append('hello,world')
print('這是使用了append:', li)
這是使用了append: [1, 2, 3, 4, 5, 'hello,world']

上述程式碼中,我們使用的是li.append('新增內容')的方式來為列表新增元素
li.append()使列表li呼叫自身的方法append(),這樣就可以在列表的末尾新增一個新的元素。

insert()

接下來是insert(),append()是排隊,那insert()就是插隊的意思啦,它可以將一個元素插入到列表的自定位置:
li.insert(索引,元素)

li1 = [7, 8, 9, 10]
li1.insert(3, 'helloworld')
print('這是使用了insert:', li1)
這是使用了insert: [7, 8, 9, 'helloworld', 10]

這樣就將字串helloworld插入到了列表的第四個位置裡。

extend()

上面兩個方法是對單個元素進行增加,如果我們需要增加多個元素怎麼辦?
那就可以使用我們的extend()來進行新增,extend()可以將序列中的每個元素新增到末尾:

l1 = [1, 2, 3]
l2 = [3, 4, 5, 6, 7, 8, 9]
l1.extend(l2)
print(l1)
[1, 2, 3, 3, 4, 5, 6, 7, 8, 9]

上面的程式碼先定義了兩個列表l1和l2,然後使用l1.extend(l2),將l2的每個元素新增到了l1的末尾。

增加講完了,接下來進行刪除操作,刪除也有對應的四個方法:del(),pop(),remove(),clear()

del()

del()是單獨的方法,不需要通過列表本身來進行呼叫,可以直接使用:

li = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
del(li[0]) # 如果刪除列表中某個值請填寫對應的下標號
print('使用了del',li)
使用了del ['e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

上述程式碼刪除了li[0],但是請注意,如果不進行索引的話,預設會將這個變數刪除,請謹慎使用:

li = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
del(li) 
print(li)
NameError: name 'li' is not defined

這就是刪除了整個變數,再列印這個變數時就會提示變數未定義

pop()

pop()方法不帶引數的話刪除預設刪除最後一個元素,帶引數的話則刪除指定的下標值:

# pop:不帶引數刪除最後一個元素
li1 = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
li1.pop()
print('使用了pop不帶引數',li1)
使用了pop ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l']
# 帶引數刪除指定下標
li1 = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
li1.pop(0) # 刪除第一個元素
print('使用了pop帶引數',li1)
使用了pop帶引數 ['e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

pop()還有個神奇的地方,它可以讓你需要刪除的引數取出來繼續使用,使用完了再進行刪除:

li1 = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
a = li1.pop(0)
if a == 'h':
    print('helloworld')
print('使用了pop帶引數',li1)
helloworld
使用了pop帶引數 ['e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

上述程式碼使用pop()刪除了第一個元素,然後使用第一個元素進行了一個簡單的判斷,說明pop()可以為我們返回刪除的元素,讓我們先使用,使用完再刪除

remove()

remove()用來刪除一個指定元素,無返回值,無法使用下標刪除:

li2 = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
li2.remove('l')
print('使用了remove',li2)
使用了remove ['h', 'e', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

上述程式碼使用remove()刪除了一個元素l

clear()

clear()用於清空列表,與del不同的是,它會為我們保留空列表,而不會把變數都刪除:

li2 = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
li2.clear()
print('使用了clear',li2)
使用了clear []

上述程式碼清除了列表後,保留了空列表

改的方法就比較簡單,直接索引出下標重新賦值即可:

li = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
li[0] = 'python'  # 將字串python賦值給li[0]
print(li)
['python', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

這裡就對li[0]進行了重新賦值

有通過index查詢指定元素返回對應下標,也可以使用count來計算該元素出現過的次數:

li = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
print('查詢對應下標', li.index('h'))
查詢對應下標 0
print(li[0]) #通過下標查詢對應的元素
h
# count:查詢對應元素在列表中出現的次數,如果列表中沒有該元素,則返回0
print('查詢元素出現過的次數', li.count('o'))
查詢元素出現過的次數 2

其他方法

除了增刪改查,列表中還有其他的方法複製copy()、倒敘排列reverse()、從小到大排列sort()

複製

# 複製:copy 複製一個全新的列表,複製後兩個表的記憶體地址不同,不會互相影響,
li = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
print("這是原來的列表", id(li))
這是原來的列表 139786018649480
li1 = li.copy()
print("這是一個複製出來的列表", id(li1), li1)
這是一個複製出來的列表 139786021304584 ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

使用li.copy(),再用一個變數接收復制的列表,就可以實現複製出一個新的列表來

倒敘排列

li = ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
li.reverse()
print("對列表倒敘排序", li)
對列表倒敘排序 ['d', 'l', 'r', 'o', 'w', 'o', 'l', 'l', 'e', 'h']

從小到大排列

sort()方法可以將數字型別的進行從小到大的排列,一般也用於同型別的排列

li2 = [1, 5, 12, 8, 23, 10, 11, 500]
li2.sort()
print("對列表從小到達排序", li2)
對列表從小到達排序 [1, 5, 8, 10, 11, 12, 23, 500]

元組方法

元組做為不可變型別,只能查和刪,如果需要其他操作需要轉換成列表

# 查,與列表相同,index返回下標和count計算元素出現的個數
a = (1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6)
# 使用index返回元素的下標值
print(a.index(3))
2
也可以使用索引查詢對應的值
print(a[0])
1
# 使用count返回元素出現的個數
print(a.count(6))
7

只能刪除整個元組,無法使用下標值,刪除後再使用會提示沒有定義變數

a = (1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6)
del (a)
print(a)
NameError: name 'a' is not defined

元組只有查和刪的方法,如果需要修改應先轉成列表修改再轉回元組,但是不建議這麼做,因為修改過的元組就已經不是原來的那個元組了,而且設定元組也是為了這組資料不希望受到修改

總結

以上就是關於列表&元組的方法了,有興趣的小夥伴可以自己嘗試一下。
如果有哪裡錯誤或者不好的地方,還請各位大佬指出來,我會虛心接受並修改錯誤,謝謝!

相關文章