首頁 > 後端開發 > Python教學 > Python 教程 - ata 結構

Python 教程 - ata 結構

DDD
發布: 2024-12-23 19:36:15
原創
264 人瀏覽過

介紹

資料結構是組織資料的工具。不僅是為了存儲,也是為了解決一些問題。 Python中有一些資料結構,包括列表、字典、元組和集合。

清單

列表是一種使用索引順序儲存項目的資料結構。這是列表資料結構的圖示。

Python Tutorial - ata Structure

在 Python 中建立清單的方法有很多種。

  1. 直接在列表內初始化值。
items = [1,2,3,4]
登入後複製
登入後複製
登入後複製
登入後複製
  1. 初始化一個空列表。
items = []
登入後複製
登入後複製
登入後複製
登入後複製

可以透過索引直接存取清單中的項目。

items = [1,2,3,4,5]

# access item at index 2
result = items[2]

print(result) # returns 3
登入後複製
登入後複製
登入後複製
登入後複製

可以使用 for 迴圈檢索清單中的所有項目。這是一個例子。

# create a new list
items = [1,2,3,4,5]

# retrieve each item inside a list
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

1
2
3
4
5
登入後複製
登入後複製
登入後複製
登入後複製

根據上面的程式碼,名為 items 的清單是使用指定的 item 建立的。使用 for 迴圈檢索每個項目。

列出基本操作

append() 函數將一個新項目加入到清單中。這是append() 用法的範例。

# create empty list
shopping_list = []

# add some items
shopping_list.append("apple")
shopping_list.append("milk")
shopping_list.append("cereal")

# retrieve all items
for item in shopping_list:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

apple
milk
cereal
登入後複製
登入後複製
登入後複製
登入後複製

append() 如下圖所示。

Python Tutorial - ata Structure

除了append()函數之外,insert()函數會在特定索引中新增一個項目。這是一個例子。

items = ["apple","banana","mango","coffee"]

# add new item at index 1
items.insert(1,"cereal")

# retrieve all items
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

apple
cereal
banana
mango
coffee
登入後複製
登入後複製
登入後複製
登入後複製

insert() 如下圖所示。

Python Tutorial - ata Structure

更新清單中的項目非常簡單。只需指定項目的索引,然後使用更新的項目來變更它。

# create a list
drinks = ["milkshake","black tea","banana milk","mango juice"]

# update value at index 2
drinks[2] = "chocolate milk"

print(f"value at index 2: {drinks[2]}")
登入後複製
登入後複製
登入後複製
登入後複製

輸出

value at index 2: chocolate milk
登入後複製
登入後複製
登入後複製
登入後複製

remove() 函數從清單中刪除一個項目。這是一個例子。

items = ["apple","banana","mango","coffee"]

# remove "mango"
items.remove("mango")

# remove item at index 1
items.remove(items[1])

print("after removed")
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

after removed
apple
coffee
登入後複製
登入後複製
登入後複製
登入後複製

可以透過指定清單的起始索引和結束索引來選擇清單中的項目。這是在清單中選擇項目的基本結構。

list_name[start:end]
登入後複製
登入後複製
登入後複製
登入後複製

項目是從開始索引到但不包括結束索引選擇的。這是在清單中選擇項目的範例。

items = ["apple","mango","papaya","coconut","banana"]

# select items from index 1 up to but not including index 3
selected = items[1:3]

# show all items
print(f"all items: {items}")

# show the selected items
print(f"selected: {selected}")
登入後複製
登入後複製
登入後複製

輸出

all items: ['apple', 'mango', 'papaya', 'coconut', 'banana']
selected: ['mango', 'papaya']
登入後複製
登入後複製
登入後複製

列表理解

列表理解是一種建立清單的「函數式」方式。為了理解列表理解,讓我們來看一個使用迭代方法建立包含偶數值的列表的範例。

evens = []

for i in range(1,11):
    evens.append(i*2)

print(evens)
登入後複製
登入後複製
登入後複製

輸出

items = [1,2,3,4]
登入後複製
登入後複製
登入後複製
登入後複製

基於上面的程式碼,偶數是使用 for 迴圈的迭代方法產生的。上面的例子也可以使用列表理解來實現。這是使用列表理解產生偶數的範例。

items = []
登入後複製
登入後複製
登入後複製
登入後複製

輸出

items = [1,2,3,4,5]

# access item at index 2
result = items[2]

print(result) # returns 3
登入後複製
登入後複製
登入後複製
登入後複製

基於上面的程式碼,列表理解方法提供了更簡潔的程式碼,並且與先前的迭代方法相同的結果。

列表推導式可以與 if 分支一起使用。在此範例中,清單理解用於根據特定條件過濾某些值。

# create a new list
items = [1,2,3,4,5]

# retrieve each item inside a list
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

1
2
3
4
5
登入後複製
登入後複製
登入後複製
登入後複製

這是上一個範例的迭代版本。

# create empty list
shopping_list = []

# add some items
shopping_list.append("apple")
shopping_list.append("milk")
shopping_list.append("cereal")

# retrieve all items
for item in shopping_list:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

多維列表

列表可以像矩陣一樣以多維方式儲存。這是聲明用於儲存數字矩陣的多維列表的範例。

apple
milk
cereal
登入後複製
登入後複製
登入後複製
登入後複製

可以使用雙方括號 ([x][y]) 存取該項目,方法是指定 x 表示主列表的索引,而 y 表示嵌套列表內項目的索引。這是數字矩陣的圖示。

Python Tutorial - ata Structure

多維列表中的項目可以透過使用巢狀的 for 迴圈來檢索。

items = ["apple","banana","mango","coffee"]

# add new item at index 1
items.insert(1,"cereal")

# retrieve all items
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

apple
cereal
banana
mango
coffee
登入後複製
登入後複製
登入後複製
登入後複製

字典

字典是一種將記錄儲存為鍵值對的資料結構。每個鍵必須是唯一的,同時允許重複值。這說明了字典的資料結構:

Python Tutorial - ata Structure

創建字典的方法有很多種:

  1. 建立一個包含初始化記錄的字典。
# create a list
drinks = ["milkshake","black tea","banana milk","mango juice"]

# update value at index 2
drinks[2] = "chocolate milk"

print(f"value at index 2: {drinks[2]}")
登入後複製
登入後複製
登入後複製
登入後複製
  1. 建立一個空字典。
value at index 2: chocolate milk
登入後複製
登入後複製
登入後複製
登入後複製

可以使用for迴圈來擷取字典中的所有記錄。這是一個例子。

items = ["apple","banana","mango","coffee"]

# remove "mango"
items.remove("mango")

# remove item at index 1
items.remove(items[1])

print("after removed")
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

after removed
apple
coffee
登入後複製
登入後複製
登入後複製
登入後複製

字典基本操作

要在字典中插入新項目,請指定該項目的鍵值對。確保密鑰是唯一的。

list_name[start:end]
登入後複製
登入後複製
登入後複製
登入後複製

這是在字典中插入新項目的範例。

items = ["apple","mango","papaya","coconut","banana"]

# select items from index 1 up to but not including index 3
selected = items[1:3]

# show all items
print(f"all items: {items}")

# show the selected items
print(f"selected: {selected}")
登入後複製
登入後複製
登入後複製

輸出

all items: ['apple', 'mango', 'papaya', 'coconut', 'banana']
selected: ['mango', 'papaya']
登入後複製
登入後複製
登入後複製

要更新字典中的項目,請指定項目的鍵,然後插入更新的值。

evens = []

for i in range(1,11):
    evens.append(i*2)

print(evens)
登入後複製
登入後複製
登入後複製

輸出

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
登入後複製
登入後複製
登入後複製

字典中的鍵和值可以使用不同的方法獨立存取。

evens = [x*2 for x in range(1,11)] # using list comprehension
print(evens)
登入後複製
登入後複製

輸出

items = [1,2,3,4]
登入後複製
登入後複製
登入後複製
登入後複製

pop() 方法根據給定的鍵從字典中刪除項目。

items = []
登入後複製
登入後複製
登入後複製
登入後複製

輸出

items = [1,2,3,4,5]

# access item at index 2
result = items[2]

print(result) # returns 3
登入後複製
登入後複製
登入後複製
登入後複製

clear() 方法會刪除字典中的所有項目。

# create a new list
items = [1,2,3,4,5]

# retrieve each item inside a list
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

1
2
3
4
5
登入後複製
登入後複製
登入後複製
登入後複製

元組

元組是一種不可變的資料結構,用於儲存許多值。元組可以包含可變值。建立新元組有兩種方法。

  1. 建立一個具有指定值的元組。
# create empty list
shopping_list = []

# add some items
shopping_list.append("apple")
shopping_list.append("milk")
shopping_list.append("cereal")

# retrieve all items
for item in shopping_list:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

輸出

apple
milk
cereal
登入後複製
登入後複製
登入後複製
登入後複製
  1. 建立一個空元組。
items = ["apple","banana","mango","coffee"]

# add new item at index 1
items.insert(1,"cereal")

# retrieve all items
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

元組基本操作

元組是不可變的,這意味著它的值一旦創建就無法更改或更新。

apple
cereal
banana
mango
coffee
登入後複製
登入後複製
登入後複製
登入後複製

可以使用「元組解包」來檢索元組中的值(此概念類似於 JavaScript 中的物件解構)。

解包時,解包值的大小必須等於元組的大小。

# create a list
drinks = ["milkshake","black tea","banana milk","mango juice"]

# update value at index 2
drinks[2] = "chocolate milk"

print(f"value at index 2: {drinks[2]}")
登入後複製
登入後複製
登入後複製
登入後複製

輸出

value at index 2: chocolate milk
登入後複製
登入後複製
登入後複製
登入後複製

集合是一種無序的資料結構,僅包含唯一的項。建立集合的方法有很多種。

items = ["apple","banana","mango","coffee"]

# remove "mango"
items.remove("mango")

# remove item at index 1
items.remove(items[1])

print("after removed")
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

可以使用 set() 函數建立空集。

after removed
apple
coffee
登入後複製
登入後複製
登入後複製
登入後複製

集合資料結構會自動刪除重複值。

list_name[start:end]
登入後複製
登入後複製
登入後複製
登入後複製

輸出

items = ["apple","mango","papaya","coconut","banana"]

# select items from index 1 up to but not including index 3
selected = items[1:3]

# show all items
print(f"all items: {items}")

# show the selected items
print(f"selected: {selected}")
登入後複製
登入後複製
登入後複製

可以使用 for 迴圈存取集合內的值。

all items: ['apple', 'mango', 'papaya', 'coconut', 'banana']
selected: ['mango', 'papaya']
登入後複製
登入後複製
登入後複製

輸出

evens = []

for i in range(1,11):
    evens.append(i*2)

print(evens)
登入後複製
登入後複製
登入後複製

設定基本操作

集合資料結構提供並、交、差、對稱差等多種運算。

並集運算傳回兩個集合中的所有項目。

Python Tutorial - ata Structure

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
登入後複製
登入後複製
登入後複製

輸出

evens = [x*2 for x in range(1,11)] # using list comprehension
print(evens)
登入後複製
登入後複製

交集運算傳回集合交集中存在的所有項目。

Python Tutorial - ata Structure

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
登入後複製
登入後複製
登入後複製

輸出

samples = [12,32,55,10,2,57,66]

result = [s for s in samples if s % 4 == 0] # using list comprehension

print(result)
登入後複製

差異運算傳回僅存在於某個集合中的所有項目。

Python Tutorial - ata Structure

[12, 32]
登入後複製

輸出

samples = [12,32,55,10,2,57,66]

result = []

for s in samples:
    if s % 4 == 0:
        result.append(s)

print(result)
登入後複製

對稱差分運算傳回任一集合中存在但不在交集中的所有項目。

Python Tutorial - ata Structure

matrix = [
 [1,2,3],
 [4,5,6],
 [7,8,9],
]
登入後複製

輸出

items = [1,2,3,4]
登入後複製
登入後複製
登入後複製
登入後複製

功能介紹

函數是一個包含指令的可呼叫單元,旨在減少程式碼重複和組織複雜的任務。有兩種類型:void 函數(無返回值)和有返回值的函數。

這是Python中函數的基本結構。

items = []
登入後複製
登入後複製
登入後複製
登入後複製

這是Python中void函數(無回傳值)的範例。

items = [1,2,3,4,5]

# access item at index 2
result = items[2]

print(result) # returns 3
登入後複製
登入後複製
登入後複製
登入後複製

輸出

# create a new list
items = [1,2,3,4,5]

# retrieve each item inside a list
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

基於上面的程式碼,建立了名為 hello() 的函數。透過指定函數名稱後面跟著括號 () 來呼叫函數。

這是有回傳值的函數範例。

1
2
3
4
5
登入後複製
登入後複製
登入後複製
登入後複製

輸出

# create empty list
shopping_list = []

# add some items
shopping_list.append("apple")
shopping_list.append("milk")
shopping_list.append("cereal")

# retrieve all items
for item in shopping_list:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

基於上面的程式碼,創建了名為 add() 的函數來對兩個數字求和。 add() 函數的回傳值儲存在 result 變數中。

使用傳回值函數時,請確保使用返回值。

Python 中函數的主題將在單獨的章節中詳細解釋。

範例 - 簡單的待辦事項清單應用程序

讓我們建立一個簡單的待辦事項清單應用程式。該應用程式使用清單作為待辦事項的存儲,並利用函數來實現更清晰的程式碼。

第一步是匯入 uuid 套件並建立一個名為 todos 的列表,用於儲存 todo 記錄。 uuid 套件用作 todo 記錄的識別碼 (ID)。

apple
milk
cereal
登入後複製
登入後複製
登入後複製
登入後複製

之後,建立一個 view_todos() 函數來檢索所有待辦事項記錄。所有待辦事項記錄均使用 for 迴圈檢索。

items = ["apple","banana","mango","coffee"]

# add new item at index 1
items.insert(1,"cereal")

# retrieve all items
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

建立一個view_todo()函數,透過指定的ID檢索todo記錄。在 for 迴圈內檢查每個待辦事項記錄,以檢查目前待辦事項 ID 是否等於指定的 ID。如果匹配,則顯示待辦事項記錄。

apple
cereal
banana
mango
coffee
登入後複製
登入後複製
登入後複製
登入後複製

建立一個create_todo()函數來建立一個新的待辦事項。 todo 記錄表示為帶有 id 和 title 欄位的字典。

# create a list
drinks = ["milkshake","black tea","banana milk","mango juice"]

# update value at index 2
drinks[2] = "chocolate milk"

print(f"value at index 2: {drinks[2]}")
登入後複製
登入後複製
登入後複製
登入後複製

建立 update_todo() 函數來更新待辦事項。在此函數中,todo 記錄根據指定的 ID 進行更新。

value at index 2: chocolate milk
登入後複製
登入後複製
登入後複製
登入後複製

建立一個delete_todo()函數來刪除一個todo。在此函數中,刪除指定ID的todo記錄。

items = ["apple","banana","mango","coffee"]

# remove "mango"
items.remove("mango")

# remove item at index 1
items.remove(items[1])

print("after removed")
for item in items:
    print(item)
登入後複製
登入後複製
登入後複製
登入後複製

最後,建立一個名為 display_menu() 的函數來顯示應用程式的主選單。

after removed
apple
coffee
登入後複製
登入後複製
登入後複製
登入後複製

這是完整的程式碼。

list_name[start:end]
登入後複製
登入後複製
登入後複製
登入後複製

這是應用程式的輸出。

Python Tutorial - ata Structure

來源

  • Python 中的資料結構。

希望這篇文章對你學習Python有幫助。如果您有任何意見,請在評論區告訴我。

以上是Python 教程 - ata 結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板