1. python數據結構如何實
Python中有許多數據結構是預先實現了的,這是它比C語言更強的地方。
Python中已經實現了一些基本的數據結構:
數,包括int、long、float等
字元串
數組,高級數組
哈希數據結構,包括字典dict和集合set
Python中的一些標准庫也有隊列、棧、堆之類的數據結構。
如果您想要親手實現這些數據結構,不妨去看一看C語言是如何編寫出Python語言這些新功能的(查看Python的實現源代碼),或者去維基網路、網路,您可以在那裡找到更多有用的信息。
2. python 如何表示數據結構
Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推
列表
1、定義列表,取出列表中的值
1
1 names = [] #定義空列表 2 names = ['a','b','c'] #定義一個非空列表 3 4 # 取出列表中的值 5 6 >>> names = ['a','b','c'] 7 >>> names[0] 8 'a' 9 >>> names[1]10 'b'11 >>> names[2]12 'c'13 >>> names[-1]#倒著取最後一個值14 'c'
2、切片
1
1 >>> names = ['a','b','c','d'] # 列表的下標值是從0開始取值的 2 >>> names[1:3] #取1到3之間的元素,包括1,不包括3 3 ['b', 'c'] 4 >>> names[1:-1] #取1到-1之間的元素,包括1,不包括-1 5 ['b', 'c'] 6 >>> names[0:3] 7 ['a', 'b', 'c'] 8 >>> names[:3] #從頭開始取,0可以省略,效果等同於names[0:3] 9 ['a', 'b', 'c']10 >>> names[3:] #想取到最後一個值,必須不能寫-1,只能這么寫11 ['d']12 >>> names[0::2] #後面的2表示:每隔一個元素就取一個13 ['a', 'c']14 >>> names[::2] #從頭開始0可以省略,效果跟上一句一樣15 ['a', 'c']
切片小結:
①序列始終都是從左向右切片的,不能是從右向左
①列表切片時,起始位的元素是包括的,結束位的元素是不包括(又叫顧頭不顧尾),最後一個位置表示步長(names[開始位:結束位:步長])
②如果從0位置取值,0可以省略
③想取最後一個值時,結束位不能是-1,因為結束位的元素不包括,所以只能留空
3. PYTHON的數據結構和演算法介紹
當你聽到數據結構時,你會想到什麼?
數據結構是根據類型組織和分組數據的容器。它們基於可變性和順序而不同。可變性是指創建後改變對象的能力。我們有兩種類型的數據結構,內置數據結構和用戶定義的數據結構。
什麼是數據演算法-是由計算機執行的一系列步驟,接受輸入並將其轉換為目標輸出。
列表是用方括弧定義的,包含用逗號分隔的數據。該列表是可變的和有序的。它可以包含不同數據類型的混合。
months=['january','february','march','april','may','june','july','august','september','october','november','december']
print(months[0])#print the element with index 0
print(months[0:7])#all the elements from index 0 to 6
months[0]='birthday #exchange the value in index 0 with the word birthday
print(months)
元組是另一種容器。它是不可變有序元素序列的數據類型。不可變的,因為你不能從元組中添加和刪除元素,或者就地排序。
length, width, height =9,3,1 #We can assign multiple variables in one shot
print("The dimensions are {} * {} * {}".format(length, width, height))
一組
集合是唯一元素的可變且無序的集合。它可以讓我們快速地從列表中刪除重復項。
numbers=[1,2,3,4,6,3,3]
unique_nums = set(numbers)
print(unique_nums)
models ={'declan','gift','jabali','viola','kinya','nick',betty' }
print('davis' in models)#check if there is turner in the set models
models.add('davis')
print(model.pop())remove the last item#
字典
字典是可變和無序的數據結構。它允許存儲一對項目(即鍵和值)
下面的例子顯示了將容器包含到其他容器中來創建復合數據結構的可能性。
* 用戶定義的數據結構*
使用數組的堆棧堆棧是一種線性數據結構,其中元素按順序排列。它遵循L.I.F.O的機制,意思是後進先出。因此,最後插入的元素將作為第一個元素被刪除。這些操作是:
溢出情況——當我們試圖在一個已經有最大元素的堆棧中再放一個元素時,就會出現這種情況。
下溢情況——當我們試圖從一個空堆棧中刪除一個元素時,就會出現這種情況。
隊列是一種線性數據結構,其中的元素按順序排列。它遵循先進先出的F.I.F.O機制。
描述隊列特徵的方面
兩端:
前端-指向起始元素。
指向最後一個元素。
有兩種操作:
樹用於定義層次結構。它從根節點開始,再往下,最後的節點稱為子節點。
鏈表
它是具有一系列連接節點的線性數據。每個節點存儲數據並顯示到下一個節點的路由。它們用來實現撤銷功能和動態內存分配。
圖表
這是一種數據結構,它收集了具有連接到其他節點的數據的節點。
它包括:
演算法
在演算法方面,我不會講得太深,只是陳述方法和類型:
原文:https://www.tuicool.com/articles/hit/VRRvYr3
4. 【Python基礎】Python基礎數據結構都有哪些
列表(list)
字典(dict)
元組(tuple)
集合(set)