應用程式設計/列表和元組
一種以高效搜尋和檢索方式儲存資料的方式。不同的資料結構適合不同的問題。一些資料結構對於簡單的一般問題很有用,例如檢索已使用特定識別符號儲存的資料。例如,線上字典可以結構化,以便它可以檢索單詞的定義。另一方面,已經設計了專門的資料結構來解決複雜的特定搜尋問題。[1]
觀察基本示例是理解資料結構的有效方法。例如,資料結構的一個非常基本的示例是陣列,其中多個數據位被協調成一個共享公共標籤的組。這有助於程式呼叫這些資料位或對整個資料集執行其他操作。資料結構的另一個示例是堆疊,它將資料單元放置在相對層次結構中,允許程式碼函式以協調的方式對資料進行操作,例如將新的資料單元推入堆疊,或從堆疊頂部彈出資料單元。[2]
從一般意義上講,資料結構的概念與虛擬物件和虛擬現實的概念相吻合。隨著資料被開發人員和其他人更精心安排,資料變得更加功能化,從而允許虛擬現實的出現。這是過去幾十年許多技術進步的核心概念。[2]
在計算機科學中,陣列資料結構,或簡稱為陣列,是一種資料結構,它由元素(值或變數)集合組成,每個元素都由至少一個數組索引或鍵標識。陣列的儲存方式使得可以透過數學公式從其索引元組計算出每個元素的位置。最簡單的資料結構型別是線性陣列,也稱為一維陣列。陣列是最古老和最重要的資料結構之一,幾乎每個程式都使用它們。它們還用於實現許多其他資料結構,例如列表和字串。陣列之所以有用,主要是因為可以在執行時計算元素索引。除其他事項外,此功能允許單個迭代語句處理任意多個數組元素。因此,陣列資料結構的元素需要具有相同的大小,並且應使用相同的資料表示。[3]
從零開始
索引從 0 開始。陣列長度等於陣列可以儲存的元素數量。從零開始的陣列之所以從零開始,是因為與數學相關的原因。不是因為硬體相關的原因。[4]
從一開始
索引從 1 開始。
從 n 開始
陣列的基索引可以自由選擇。通常允許從 n 開始索引的程式語言也允許負索引值和其他標量資料型別(例如列舉)或字元用作陣列索引。
一維
一維陣列(或單維陣列)是一種線性陣列。訪問其元素涉及單個下標,該下標可以表示行或列索引。
days_week = ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun']
print(days_week[1])
輸出
Tues
二維
二維陣列是一個數組中的陣列。它是陣列的陣列。在這種型別的陣列中,資料元素的位置由兩個索引而不是一個索引來引用。因此它表示一個具有資料行和列的表格。[5]
random_array = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12, 15, 8, 6]]
print(random_array[0])
print(random_array[1][2])
輸出
[11, 12, 5, 2] 10
元組是一種資料結構,它是一個不可變的或不可更改的元素有序序列。由於元組是不可變的,因此無法修改它們的值。
無法修改
t = ('a', 'b', 'c', 'd', 'e')
t[0] = 'A'
print(t)
輸出
TypeError: 'tuple' object does not support item assignment
一般而言,元組比列表或陣列使用更少的記憶體。
元組允許像列表一樣進行切片和索引,但沒有用於刪除或更改任何元素的方法。
索引
t = ('a', 'b', 'c', 'd', 'e')
print(t[1])
print(t[-1])
輸出
b e
切片
t = ('a', 'b', 'c', 'd', 'e')
print(t[1:])
print(t[:2])
print(t[1:3])
print(t[::2]
輸出
('b', 'c', 'd', 'e')
('a', 'b')
('b', 'c')
('a', 'c', 'e')
1) 建立一個程式,比較兩個列表,如果這些列表至少有一個共同元素,則返回“True”。
2) 建立一個程式,比較兩個列表並識別共同元素。顯示每個列表中這些共同元素的索引。
3) 建立一個程式,讀取一個列表並刪除任何連續且重複的元素。例如,["A", "B", "C", "C", "D", "E", "E", "G", "E", "F"] 將變為 ["A", "B", "C", "D", "E", "G", "E", "F"]。
4) 建立一個程式,透過交替來自每個列表的元素,將兩個列表合併到一個列表中。例如 ["A", "B", "C"] + ["1", "2", "3"] 將變為 ["A", "1", "B", "2", "C", "3"]。
陣列(列表) - 由元素(值或變數)集合組成的資料結構,每個元素都由至少一個數組索引或鍵標識。[7]
資料結構 - 資料值的集合,它們之間的關係,以及可以應用於資料的函式或操作。[8]
欄位 - 封裝在類或物件中的特定資料片段。[9]
雜湊表 - 一種儲存鍵值對的資料結構型別。鍵被髮送到一個雜湊函式,該函式對它執行算術運算。結果(通常稱為雜湊值或雜湊)是雜湊表中鍵值對的索引。[10]
堆 - 一種專門的基於樹的資料結構,滿足堆屬性:如果 P 是 C 的父節點,則 P 的鍵(值)要麼大於或等於(在最大堆中),要麼小於或等於(在最小堆中)C 的鍵。[11]
索引(鍵) - 序列中專案的
連結串列 - 一系列稱為節點的元素,每個節點包含一個值並指向列表中的下一個節點(有時也指向上一個節點)。[8]
成員 - 記錄中的單個數據;例如,“Person”記錄的“Name”欄位。[13]
記錄(結構體) - 用於收集多個變數的結構,這些變數通常是不同型別並存儲為欄位。[13]
帶標籤的聯合體 - 包含一個額外欄位的聯合體,該欄位指示當前型別,以增強型別安全性。[8]
元組 - 類似於陣列或列表,區別在於它們是不可變的,並用括號括起來。
聯合體 - 一種資料結構,其中可以同時儲存多個基本型別,類似於結構體或記錄。[8]
- ↑ https://www.britannica.com/technology/data-structure
- ↑ a b https://www.techopedia.com/definition/1149/data-structure
- ↑ 陣列資料結構
- ↑ https://softwareengineering.stackexchange.com/questions/110804/why-are-zero-based-arrays-the-norm
- ↑ https://www.xspdf.com/resolution/53289026.html
- ↑ https://books.trinket.io/pfe/10-tuples.html
- ↑ w:陣列資料結構
- ↑ a b c d w:資料結構
- ↑ w:欄位(計算機科學)
- ↑ Educative.io
- ↑ w:堆(資料結構)
- ↑ Scratch-Wiki
- ↑ a b w:記錄(計算機科學)