更多資料獲取
作者主頁:濤哥聊Python
個人網(wǎng)站:濤哥聊Python
大家好,我是濤哥,今天為大家分享的是Python中常見的數(shù)據(jù)結(jié)構(gòu)。
1.數(shù)組
含義:數(shù)組是一種有序的數(shù)據(jù)結(jié)構(gòu),其中的元素可以按照索引來訪問。數(shù)組的大小通常是固定的,一旦創(chuàng)建就不能更改。
基本操作:
# 創(chuàng)建數(shù)組
arr = [1, 2, 3, 4, 5]
# 訪問元素
element = arr[2] # 獲取第三個元素,索引從0開始
# 修改元素
arr[1] = 6
# 獲取數(shù)組長度
length = len(arr)
# 迭代數(shù)組
for item in arr:
print(item)
2.列表
含義:列表是Python中內(nèi)置的數(shù)據(jù)結(jié)構(gòu),它是一種有序的可變序列,可以存儲不同類型的元素。
基本操作:
# 創(chuàng)建列表
my_list = [1, 2, 3, "hello"]
# 添加元素
my_list.append(4) # 添加元素到末尾
my_list.insert(2, 5) # 在指定位置插入元素
# 刪除元素
my_list.remove(3) # 移除指定元素
popped_item = my_list.pop() # 移除并返回末尾元素
# 獲取列表長度
length = len(my_list)
# 列表切片
subset = my_list[1:3] # 獲取索引1到2的子列表
3.棧
含義:棧是一種后進先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),只能在棧頂進行插入和刪除操作。
基本操作:
# 創(chuàng)建空棧
stack = []
# 入棧
stack.append(1)
stack.append(2)
# 出棧
popped_item = stack.pop()
# 獲取棧頂元素
top_item = stack[-1]
# 檢查棧是否為空
is_empty = len(stack) == 0
4.隊列
含義:隊列是一種先進先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),只能在隊列的一端進行插入操作,另一端進行刪除操作。
基本操作:
from collections import deque
# 創(chuàng)建空隊列
queue = deque()
# 入隊
queue.append(1)
queue.append(2)
# 出隊
popped_item = queue.popleft()
# 獲取隊列頭元素
front_item = queue[0]
# 檢查隊列是否為空
is_empty = len(queue) == 0
5.鏈表
含義:鏈表是一種動態(tài)數(shù)據(jù)結(jié)構(gòu),由節(jié)點組成,每個節(jié)點包含一個數(shù)據(jù)元素和指向下一個節(jié)點的引用。鏈表可以是單鏈表、雙鏈表或循環(huán)鏈表。
基本操作:
class ListNode:
def __init__(self, value):
self.value = value
self.next = None
# 創(chuàng)建鏈表節(jié)點
node1 = ListNode(1)
node2 = ListNode(2)
# 構(gòu)建鏈表
node1.next = node2
# 遍歷鏈表
current = node1
while current:
print(current.value)
current = current.next
6.哈希表(字典)
含義:哈希表是一種鍵值對存儲結(jié)構(gòu),它通過哈希函數(shù)將鍵映射到特定的存儲位置,以實現(xiàn)快速的查找和插入操作。
基本操作:
# 創(chuàng)建空字典
my_dict = {}
# 添加鍵值對
my_dict["name"] = "Alice"
my_dict["age"] = 30
# 獲取值
value = my_dict["name"]
# 刪除鍵值對
del my_dict["age"]
# 檢查鍵是否存在
key_exists = "name" in my_dict
7.樹
含義:樹是一種層次結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),由節(jié)點組成,每個節(jié)點可以有零個或多個子節(jié)點。樹常用于表示層次關系,例如文件系統(tǒng)、組織結(jié)構(gòu)等。
基本操作:樹的基本操作包括節(jié)點的插入、刪除和遍歷。
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
# 創(chuàng)建樹節(jié)點
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)
# 構(gòu)建樹結(jié)構(gòu)
root.left = node2
root.right = node3
# 遍歷樹(例如中序遍歷)
def inorder_traversal(node):
if node:
inorder_traversal(node.left)
print(node.value)
inorder_traversal(node.right)
inorder_traversal(root)
8.圖
含義:圖是一種表示對象之間關系的數(shù)據(jù)結(jié)構(gòu),由節(jié)點(頂點)和邊組成。圖可以是有向的或無向的,可以用于表示網(wǎng)絡、社交關系等復雜結(jié)構(gòu)。
基本操作:圖的基本操作包括節(jié)點的添加、刪除以及邊的添加和刪除。圖的遍歷操作可以有深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)等。
class Graph:
def __init__(self):
self.graph = {}
def add_node(self, node):
if node not in self.graph:
self.graph[node] = []
def add_edge(self, node1, node2):
self.graph[node1].append(node2)
self.graph[node2].append(node1)
# 創(chuàng)建圖
my_graph = Graph()
my_graph.add_node("A")
my_graph.add_node("B")
my_graph.add_edge("A", "B")
# 圖的遍歷示例
def dfs(graph, start, visited=None):
if visited is None:
visited = set()
visited.add(start)
print(start, end=' ')
for neighbor in graph[start]:
if neighbor not in visited:
dfs(graph, neighbor, visited)
print("深度優(yōu)先搜索結(jié)果:")
dfs(my_graph.graph, "A")
今天的分享就到這里了。
最后
如果還想要領取更多更豐富的資料,可以點擊文章下方名片,回復【優(yōu)質(zhì)資料】,即可獲取 全方位學習資料包。文章來源:http://www.zghlxwxcb.cn/news/detail-732780.html
資料領取方式:
如果您渴望獲取更多關于Python編程的寶貴資料,不妨訪問我的個人主頁。在那里,您將發(fā)現(xiàn)更多深入的Python教程、實用工具、項目示例以及專業(yè)建議等等。
點擊文章下方鏈接卡片,回復【優(yōu)質(zhì)資料】,可直接領取資料大禮包。文章來源地址http://www.zghlxwxcb.cn/news/detail-732780.html
到了這里,關于Python基礎數(shù)據(jù)結(jié)構(gòu)入門必讀指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!