詳細總結:Python列表list知識點

2022-11-23 18:01:26
本篇文章給大家帶來了關於Python的相關知識,其中主要介紹了一些關於列表的知識,包括建立列表、存取列表元素以及對列表內建函數和方法進行了一些整理,最後還有關於列表的知識彙總,下面一起來看一下,希望對大家有幫助。

程式設計師必備介面測試偵錯工具:

【相關推薦:Python3視訊教學

Python內建函數/方法詳解—列表list

列表是一個有序可更改的集合,並且是最常用的 Python 資料型別。在 Python 中,列表是使用方括號 [] 編寫的。

1、建立列表

在Python中,列表中元素的資料型別可以不同,可以包含整數、浮點數和複數等,當然,也可以包含列表、元組、字典和集合等。

1.1 使用 [ ] 建立列表

建立一個列表,只需要把逗號分隔的不同資料項使用方括號 [] 括起來即可。

  • 建立空列表
list0 = []
登入後複製
  • 建立非空列表
list1 = ['Baidu', 'Alibaba', 'Tencent']
登入後複製

1.2 使用 list() 函數 建立(轉換為)列表

  • 可以使用 list() 建構函式建立列表:
this_list = list(('apple', 'banana', 'cherry'))
登入後複製

注意:在使用 list() 函數建立列表時,一定要注意雙括號

  • 在Python中,我們可以使用 list() 函數將字串、元組、字典和集合等其他類似物件轉換為列表。具體用法見下方內建函數:

2、存取列表

和列表一樣,我們既可以使用下標索引存取列表中的某個元素(得到一個元素的值),也可以使用切片存取列表中的一組元素(得到是子列表)。

2.1 下標索引存取

下標索引存取元組分為兩大類,即正向索引反向索引,格式為 list_name[i] ,其中,list_name 表示列表名,i表示索引值,i可以是正數(正向索引)也可以是負數(反向索引)。

可以得知,list_name[0]表示列表的第一個元素list_name[-1]則表示列表的最後一個元素

list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']print(list_name[0])print(list_name[-1])
登入後複製
wzq
hxw
登入後複製

正向索引:從第一個(下標0)開始、第二個(下標1)…

反向索引:從倒數第一個(下標-1)、倒數第二個(下標-2)…

2.2 切片存取

如若對上方描述不太理解,可參考下表:

元組值wzqlglgzwhlsjhxw
正向索引012345
反向索引-6-5-4-3-2-1

使用切片存取列表的格式為 list_name[strat : end : step] ,其中,start 表示起始索引,end 表示結束索引,step 表示步長。

list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']print(list_name[1:5:2])print(list_name[-6:-1:3])
登入後複製
['lgl', 'whl']['wzq', 'whl']
登入後複製

在使用切片存取列表元素時,list_name[strat : end : step],[start:end] 是左閉右開區間,即存取不了 end 代表的元素。

2.3 for 迴圈遍歷列表

可以使用 for 迴圈遍歷列表中的專案:

fruit_list = ['apple', 'pear', 'cherry']for i in fruit_list:
    print(i)
登入後複製
apple
pear
cherry
登入後複製

2.4 檢查專案是否存在

要確定列表中是否存在指定的項,我們可以使用 in 關鍵字:

# 檢查列表中是否存在'apple'fruit_list = ['apple', 'pear', 'cherry']print('apple' in fruit_list)
登入後複製
True
登入後複製

使用 in 關鍵字檢查列表中是否存在指定項時,如果存在,則返回 True ;反之,則返回 False

2.5 更改列表值

當我們建立列表後,我們可以對列表中的資料項進行修改或更新,當然我們也可以使用 append() 方法來新增列表項。

fruit_list = ['apple', 'pear', 'cherry']fruit_list[2] = 'banana'print(fruit_list)
登入後複製
['apple', 'pear', 'banana']
登入後複製

注意:元組一旦建立後,其值將無法被更改,但是有其他解決方法。

2.6 列表連線(合併)/複製

與字串一樣,列表之間可以使用 + 號和 * 號實現元組的連線複製,這就意味著它們可以生成一個新的列表。

1、+連線(合併)

x = [1, 2, 3]y = [4, 5, 6]print(x + y)
登入後複製
[1, 2, 3, 4, 5, 6]
登入後複製

2、*複製

x = ['Hello']print(x * 5)
登入後複製
['Hello', 'Hello', 'Hello', 'Hello', 'Hello']
登入後複製

2.7 巢狀列表

使用巢狀列表即在列表裡面建立其他列表。

x = [1, 2, 3]y = ['a', 'b', 'c']z = [x, y]print(z)
登入後複製
[[1, 2, 3], ['a', 'b', 'c']]
登入後複製

2.8 列表比較

列表比較需要引入 operator 模組的 eq 方法。

# 匯入 operator 模組import operator

a = [1, 2]b = [2, 3]c = [2, 3]print("operator.eq(a, b):", operator.eq(a, b))print("operator.eq(b, c):", operator.eq(b, c))
登入後複製
operator.eq(a, b): Falseoperator.eq(b, c): True
登入後複製

3、內建函數

3.1 列印輸出 print()

1、print()函數

print() 函數的功能我們已經非常熟悉了,就是列印輸出。

my_list = ['pink', True, 1.78, 65]print(my_list)
登入後複製
['pink', True, 1.78, 65]
登入後複製

3.2 確定列表專案 len()

2、len()函數

當我們要確定一個列表有多少專案(元素)時,可以使用len()函數。

fruit_list = ['apple', 'banana', 'cherry']print(len(fruit_list))
登入後複製

3.3 返回變數型別 type()

3、type()函數

使用 type() 函數可以確定變數是什麼型別(字串、列表、元組、字典或集合)。

info_list = ['name', 'gender', 'age', 'height', 'weight']print(type(info_list))
登入後複製
<class 'list'>
登入後複製

當對info_list使用 type() 確定變數型別時,會返回<class 'list'>,表明這是一個列表

3.4 轉換為列表 list()

4、tuple()函數

tuple() 函數的功能是,將其他型別轉換為元組型別,詳細用法如下:

  • 將字串轉換為列表
str1 = 'Hello Python'print(list(str1))
登入後複製
['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']
登入後複製
  • 將元組轉換為列表
tuple1 = ('Hello', 'Python')print(list(tuple1))
登入後複製
['Hello', 'Python']
登入後複製
  • 將字典轉換為列表
dict1 = {'Hello': 'Python', 'name': 'pink'}print(list(dict1))
登入後複製
['Hello', 'name']
登入後複製
  • 將集合轉換為列表
set1 = {'Hello', 'Python', 'name', 'pink'}print(list(set1))
登入後複製
['Python', 'name', 'pink', 'Hello']
登入後複製
  • 將區間轉換為列表
range1 = range(1, 6)print(list(range1))
登入後複製
[1, 2, 3, 4, 5]
登入後複製

3.5 元組元素最大/小值 max()、min()

5、max()函數和min()函數

max() 函數的作用是返回列表中元素最大值min() 函數的作用是返回列表中元素最小值

list1 = [4, 6, 2, 0, -5]print(max(list1))print(min(list1))list2 = ['a', 'z', 'A', 'Z']print(max(list2))print(min(list2))
登入後複製
6-5z
A
登入後複製

3.6 刪除列表 del

  • 刪除單個元素

我們可以使用 del list_name[i] 來刪除某個指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。

list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']del list_de[1]print(list_de)
登入後複製
['Baidu', 'Tencent', 'Bytedance']
登入後複製
  • 刪除列表

del 函數不僅可以實現刪除某個元素,還可以刪除整個列表。

list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']del list_de
登入後複製

當我們使用 del 函數刪除某列表後,再使用 print() 函數列印輸出時,會報錯NameError: name 'list_de' is not defined,表明該列表未被定義。

4、內建方法

4.1 新增元素 append()、insert()、extend()

1、append()方法

append() 方法用於在列表末尾新增新的物件。

語法

list.append(element)
登入後複製

引數值

引數描述
element必需。任何型別(字串、數位、物件等)的元素。

範例

  • 新增元素
fruit_list = ['apple', 'banana', 'cherry']fruit_list.append('pear')print(fruit_list)
登入後複製
['apple', 'banana', 'cherry', 'pear']
登入後複製
  • 新增列表
x = [1, 2, 3]y = ['A', 'B', 'C']x.append(y)print(x)
登入後複製
[1, 2, 3, ['A', 'B', 'C']]
登入後複製

2、insert()方法

insert() 方法用於將指定物件插入列表的指定位置。

語法

list.insert(position, element)
登入後複製

引數值

引數描述
position必需。數位,指定在哪個位置插入值。
element必需。元素,任何型別(字串、數位、物件等)。

範例

  • 把值 「orange」 作為第二個元素插入 fruits 列表:
fruits = ['apple', 'banana', 'cherry']fruits.insert(1, "orange")print(fruits)
登入後複製
['apple', 'orange', 'banana', 'cherry']
登入後複製
  • 將列表 y 插入到列表 x 中
x = [1, 2, 3]y = ['a', 'c']x.insert(0, y)print(x)
登入後複製
[['a', 'c'], 1, 2, 3]
登入後複製

append() 只能在末尾處新增元素或列表,insert() 可以在任意位置新增元素或列表。

3、extend()方法

extend() 方法用於在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表)。

語法

list.extend(iterable)
登入後複製

引數值

引數描述
iterable必需。任何可迭代物件(列表、集合、元組等)。

範例

aver = ['A', 'B', 'C']
登入後複製
  • 新增字串元素到列表末尾
str1 = 'Hello'aver.extend(str1)print(aver)
登入後複製
['A', 'B', 'C', 'H', 'e', 'l', 'l', 'o']
登入後複製
  • 新增列表元素到列表末尾
list1 = [1, 2, 3]aver.extend(list1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3]
登入後複製
登入後複製
登入後複製
  • 新增元組元素到列表末尾
tuple1 = (1, 2, 3)aver.extend(tuple1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3]
登入後複製
登入後複製
登入後複製
  • 新增字典元素到列表末尾
dict1 = {'name': 'pink', 'gender': True}aver.extend(dict1)print(aver)
登入後複製
['A', 'B', 'C', 'name', 'gender']
登入後複製
  • 新增集合元素到列表末尾
set1 = {1, 2, 3}aver.extend(set1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3]
登入後複製
登入後複製
登入後複製
  • 新增區間到列表末尾
range1 = range(1,10)aver.extend(range1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3, 4, 5, 6, 7, 8, 9]
登入後複製

4.2 元素出現次數 count()

count() 方法用於統計某個元素在列表中出現的次數。

語法

list.count(value)
登入後複製

引數值

引數描述
value必需。任何型別(字串、數位、列表、元組等)。要搜尋的值。

範例

num = [1, 4, 2, 9, 7, 8, 9, 3, 1]print(num.count(9))
登入後複製
2
登入後複製

4.3 指定值索引 index()

index() 方法用於從列表中找出某個值第一個匹配項的索引位置。

語法

list.index(element)
登入後複製

引數值

引數描述
element必需。任何型別(字串、數位、列表等)。要搜尋的值。

範例

num = [4, 55, 64, 32, 16, 32]print(num.index(32))
登入後複製
3
登入後複製

當被搜尋值在列表中多次出現時,僅返回首次出現的位置。

4.4 對列表排序 sort()

sort() 方法用於對原列表進行排序,如果指定引數,則使用比較函數指定的比較函數。

語法

list.sort(reverse=True|False, key=myFunc)
登入後複製

引數值

引數描述
reverse可選。reverse=True 將對列表進行降序排序。預設是 reverse=False。
key可選。指定排序標準的函數。

範例

  • 以字母順序對列表進行排序:
words = ['Name', 'Gender', 'Age', 'Height', 'Weight']words.sort()print(words)
登入後複製
['Age', 'Gender', 'Height', 'Name', 'Weight']
登入後複製
  • 對列表進行降序排序:
words = ['Name', 'Gender', 'Age', 'Height', 'Weight']words.sort(reverse=True)print(words)
登入後複製
['Weight', 'Name', 'Height', 'Gender', 'Age']
登入後複製
  • 按照值的長度對列表進行排序:
# 返回值的長度的函數:def myfunc(e):
    return len(e)words = ['a', 'bb', 'ccc', 'dddd', '']words.sort(key=myfunc)print(words)
登入後複製
['', 'a', 'bb', 'ccc', 'dddd']
登入後複製
  • 根據字典的 「year」 值對字典列表進行排序:
# 返回 'year' 值的函數:def myfunc(e):
    return e['year']words = [
    {'char': 'a', 'year': 1963},
    {'char': 'b', 'year': 2010},
    {'char': 'c', 'year': 2019}]words.sort(key=myfunc)print(words)
登入後複製
[{'char': 'a', 'year': 1963}, {'char': 'b', 'year': 2010}, {'char': 'c', 'year': 2019}]
登入後複製
  • 按照值的長度對列表進行降序排序:
# 返回值的長度的函數:def myfunc(e):
    return len(e)words = ['aa', 'b', 'ccc', 'dddd']words.sort(reverse=True, key=myfunc)print(words)
登入後複製
['dddd', 'ccc', 'aa', 'b']
登入後複製
  • 指定列表中的元素排序來輸出列表:
# 獲取列表的第二個元素def takeSecond(elem):
    return elem[1]# 列表random = [(2, 2), (3, 4), (4, 1), (1, 3)]# 指定第二個元素排序random.sort(key=takeSecond)# 輸出類別print('排序列表:', random)
登入後複製
排序列表: [(4, 1), (2, 2), (1, 3), (3, 4)]
登入後複製

4.5 複製列表 copy()

copy() 方法用於複製列表,類似於 a[:]

語法

list.copy()
登入後複製

引數值

無引數

範例

fruits = ['apple', 'banana', 'cherry', 'orange']x = fruits.copy()print(x)
登入後複製
['apple', 'banana', 'cherry', 'orange']
登入後複製

複製(製作副本)的另一種方法是使用內建函數 list() ,如下:

list1 = ['apple', 'banana', 'cherry']list_2 = list(list1)
登入後複製

4.6 顛倒列表順序 reverse()

reverse() 方法用於反向列表中元素。

語法

list.reverse()
登入後複製

引數值

無引數

範例

fruits = ['apple', 'banana', 'cherry']fruits.reverse()print(fruits)
登入後複製
['cherry', 'banana', 'apple']
登入後複製

4.7 刪除元素 pop()、remove()、clear()

1、pop()方法

pop() 方法用於移除列表中的一個元素(預設最後一個元素),並且返回該元素的值。

語法

list.pop(pos)
登入後複製

引數值

引數描述
pos可選。數位,指定需刪除元素的位置。預設值 -1,返回最後的專案。

範例

  • pos 未指定時,預設刪除最後的元素
fruits = ['apple', 'banana', 'cherry']fruits.pop()print(fruits)
登入後複製
['apple', 'banana']
登入後複製
  • pos 指定要刪除元素的位置
fruits = ['apple', 'banana', 'cherry']fruits.pop(1)print(fruits)
登入後複製
['apple', 'cherry']
登入後複製

2、remove()方法

remove() 方法用於移除列表中某個值的第一個匹配項。

語法

list.remove(element)
登入後複製

引數值

引數描述
element必需。需刪除的任何型別(字串、數位、列表等)的元素。

範例

num = [1, 3, 2, 8, 3]num.remove(3)print(num)
登入後複製
[1, 2, 8, 3]
登入後複製

當被刪除的元素在列表中存在多個時,預設刪除首次出現的那個。

3、clear()方法

clear() 方法用於清空列表,類似於 del a[:]

語法

list.clear()
登入後複製

引數值

無引數

範例

word = ['A', 'B', 'C']word.clear()print(word)
登入後複製
[]
登入後複製

clear() 方法的作用是清空列表,執行結束後對其使用 printf() 列印輸出時,會輸出 [] ,說明列表還存在,只是空列表而已。

del 函數的作用是刪除列表,執行結束後對其使用 printf() 列印輸出時,會報錯 NameError: name 'word' is not defined.

5、總結

函數描述
print()列印輸出
len()確定列表專案
type()返回變數型別
list()轉換為列表
max()返回列表元素最大值
min()返回列表元素最小值
del刪除列表
方法描述
append(obj)在列表末尾新增新的物件
insert(index, obj)在指定位置新增元素
extend(seq)將列表元素(或任何可迭代的元素)新增到當前列表的末尾
count(obj)統計某個元素在列表中出現的次數
index(obj)返回具有指定值的第一個元素的索引
sort( key=None, reverse=False)對原列表進行排序
copy()複製列表
reverse()顛倒列表的順序
pop([-1])移除列表中的一個元素(預設最後一個元素),並且返回該元素的值
remove(obj)移除列表中某個值的第一個匹配項
clear()清空列表

【相關推薦:Python3視訊教學

以上就是詳細總結:Python列表list知識點的詳細內容,更多請關注TW511.COM其它相關文章!