Ⅰ 用大括弧可以表示哪兩個數據結構
如果是python語言的話,可以表示集合和詞典兩種數據結構。
Ⅱ python3種數據類型
Python3 中有六個標準的數據類型:Number(數字) + String(字元串) + List(列表) + Tuple(元組) + Sets(集合) + Dictionary(字典)。
Number(數字)
數字類型是顧名思義是用來存儲數值的,需要記住的是,有點和Java的字元串味道差不多,如果改變了數字數據類型的值,將重新分配內存空間。
可以使用del語句刪除一些數字對象的引用:del var1[,var2[,var3[....,varN]]]]。
Python 支持三種不同的數值類型:
1.整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。
2.浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
3.復數( (complex)) - 復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型。
數字類型轉換
1.int(x) 將x轉換為一個整數。
2.float(x) 將x轉換到一個浮點數。
3.complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。
4.complex(x, y) 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。
額外說明
和別的語言一樣,數字類型支持各種常見的運算,不過python的運算比別的大多數常見語言都更加豐富,此外,還有大量豐富的方法,提供更高效的開發。
String(字元串)
創建字元串
創建字元串可以使用單引號、雙引號、三單引號和三雙引號,其中三引號可以多行定義字元串,有點類似ES6中的反引號。
Python 不支持單字元類型,單字元也在Python也是作為一個字元串使用。
訪問字元串中的值
和ES一樣,可以使用方括弧來截圖字元串,例子如下:
val_str='yelloxing'
print(val_str[0]) #y
print(val_str[1:3]) #el
print(val_str[:3]) #yel
print(val_str[:5]) #yello
字元串運算符
除了上面已經說明的方括弧,還有一些別的字元串運算,具體查看文檔。
字元串格式化
temp="我叫 %s 今年 %d 歲!" % ('心葉', 7)
print('['+temp+']') #[我叫 心葉 今年 7 歲!]
如上所示,字元串支持格式化,當然,出來上面用到的%s和%d以外,還有一些別的,具體看文檔;是不是感覺有點C語言的味道。
額外說明
所有的字元串都是Unicode字元串(針對python3),有很多有用的方法,真的很有ES和C結合體的味道。
List(列表)
序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。
Python有6個序列的內置類型(列表、元組、字元串、Unicode字元串、buffer對象和xrange對象)。
列表其實類似數組,具體的一些操作就很像字元串(類似ES中數組和字元串的關系)。
常見運算
下面用一個例子來展示一些常見的運算:
val_arr=['Made','in','China']
del val_arr[1]
print(val_arr) #['Made', 'China']
print(len(val_arr)) #2
val_newarr=val_arr+[':information']
print(val_newarr) #['Made', 'China', ':information']
val_arr=val_arr*2
print(val_arr) #['Made', 'China', 'Made', 'China']
print('in' in val_arr) #False
print('Made' in val_arr) #True
for row in val_newarr:
print(row, end=" - ") #Made - China - :information -
print(val_newarr[-1]) #:information
print(val_newarr[1:]) #['China', ':information']
再來看一個有用的例子:
cols=3
rows=2
list_2d = [[0 for col in range(cols)] for row in range(rows)]
print(list_2d) #[[0, 0, 0], [0, 0, 0]]
嵌套列表
使用嵌套列表即在列表裡創建其它列表,例如:
loop_arr=['yelloxing','心葉']
result_arr=[loop_arr,'同級別']
print(result_arr) #[['yelloxing', '心葉'], '同級別']
列表的嵌套就很靈活,此外隨便提一下:和前面說的一樣,也有很多方法提供高效的開發。
Tuple(元組)
元組與列表類似,不同之處在於元組的元素不能修改,元組使用小括弧,列表使用方括弧。
創建
元組中只包含一個元素時,需要在元素後面添加逗號,否則括弧會被當作運算符使用
tup1 = ('Google', 'Runoob', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
print(tup1) #('Google', 'Runoob', 1997, 2000)
print(tup2) #(1, 2, 3, 4, 5)
print(tup3) #('a', 'b', 'c', 'd')
基本操作
和列表的操作很相似,下面說一個幾天特殊的地方:
1.del可以刪除某個元組,不過不可以刪除元組的某個條目。
2.不可以修改,或許元組會更快,感覺的,沒有實際測試。
3.由於元組不可以修改,雖然同樣有一些方法,不過和修改相關的方法就沒有了。
Sets(集合)
回想一下數學裡面的集合,合、交、差、補等運算是不是一下子回想起來了,這里的集合也有這些方法。
和Java的集合類似,一個無序不重復元素集(與列表和元組不同,集合是無序的,也無法通過數字進行索引)。
更具體的說明,如果必要會在單獨說明。
Dictionary(字典)
字典是另一種可變容器模型,且可存儲任意類型對象。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括弧({})中,鍵必須是唯一的,但值則不必。
和ES中的JSON的差不多,操作也很像,不過區別也很大,內置方法很多,具體還是一樣,看文檔去。
刪除字典元素
可以用del刪除一個條目或字典,也可以用clear()方法清空字典(比如現在有欄位dict,就是:dict.clear())。
Ⅲ python數據結構如何實
Python中有許多數據結構是預先實現了的,這是它比C語言更強的地方。
Python中已經實現了一些基本的數據結構:
數,包括int、long、float等
字元串
數組,高級數組
哈希數據結構,包括字典dict和集合set
Python中的一些標准庫也有隊列、棧、堆之類的數據結構。
如果您想要親手實現這些數據結構,不妨去看一看C語言是如何編寫出Python語言這些新功能的(查看Python的實現源代碼),或者去維基網路、網路,您可以在那裡找到更多有用的信息。
Ⅳ 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,因為結束位的元素不包括,所以只能留空
Ⅳ python的數據結構
{
u'603993.XSHG': {
'high': array([ 7.05, 6.73]),
'close': array([ 6.89, 6.2 ]),
'low': array([ 6.7, 6.2])
}
}
最外層是一個dict,然後嵌套了一個dict,最後裡面dict的key是字元串,value是一個數組。
Ⅵ Python中內置的數據結構都有什麼
python中常見的結構有對象(object)、數組、元組、series以及普通變數。衍生包常見對象有numpy中的narray、pandas中的dataframe等。python中沒有區分字元串、整形數字、字元、浮點型的變數,統一都可以直接賦值。比如a="skkk",a=1,a=1.2222等;數組為a=[1,2,3,4];元組也稱字典類型為a={1:2,2:3}。
Ⅶ python中的數據結構分析
1.Python數據結構篇
數據結構篇主要是閱讀[Problem Solving with Python](Welcome to Problem Solving with Algorithms and Data Structures) [該網址鏈接可能會比較慢]時寫下的閱讀記錄,當然,也結合了部分[演算法導論](Introction to Algorithms)
中的內容,此外還有不少wikipedia上的內容,所以內容比較多,可能有點雜亂。這部分主要是介紹了如何使用Python實現常用的一些數據結構,例
如堆棧、隊列、二叉樹等等,也有Python內置的數據結構性能的分析,同時還包括了搜索和排序(在演算法設計篇中會有更加詳細的介紹)的簡單總結。每篇文
章都有實現代碼,內容比較多,簡單演算法一般是大致介紹下思想及演算法流程,復雜的演算法會給出各種圖示和代碼實現詳細介紹。
**這一部分是下
面演算法設計篇的前篇,如果數據結構還不錯的可以直接看演算法設計篇,遇到問題可以回來看數據結構篇中的某個具體內容充電一下,我個人認為直接讀演算法設計篇比
較好,因為大家時間也都比較寶貴,如果你會來讀這些文章說明你肯定有一定基礎了,後面的演算法設計篇中更多的是思想,這里更多的是代碼而已,嘿嘿。**
(1)[搜索](Python Data Structures)
簡述順序查找和二分查找,詳述Hash查找(hash函數的設計以及如何避免沖突)
(2)[排序](Python Data Structures)
簡述各種排序演算法的思想以及它的圖示和實現
(3)[數據結構](Python Data Structures)
簡述Python內置數據結構的性能分析和實現常用的數據結構:棧、隊列和二叉堆
(4)[樹總結](Python Data Structures)
簡述二叉樹,詳述二叉搜索樹和AVL樹的思想和實現
2.Python演算法設計篇
演算法設計篇主要是閱讀[Python Algorithms: Mastering Basic Algorithms in the Python Language](Python Algorithms: Mastering Basic Algorithms in the Python Language)[**點擊鏈接可進入Springer免費下載原書電子版**]之後寫下的讀書總結,原書大部分內容結合了經典書籍[演算法導論](Introction to Algorithms),
內容更加細致深入,主要是介紹了各種常用的演算法設計思想,以及如何使用Python高效巧妙地實現這些演算法,這里有別於前面的數據結構篇,部分演算法例如排
序就不會詳細介紹它的實現細節,而是側重於它內在的演算法思想。這部分使用了一些與數據結構有關的第三方模塊,因為這篇的重點是演算法的思想以及實現,所以並
沒有去重新實現每個數據結構,但是在介紹演算法的同時會分析Python內置數據結構以及第三方數據結構模塊的優缺點,也就意味著該篇比前面都要難不少,但
是我想我的介紹應該還算簡單明了,因為我用的都是比較朴實的語言,並沒有像演算法導論一樣列出一堆性質和定理,主要是對著某個問題一步步思考然後演算法就出來
了,嘿嘿,除此之外,裡面還有很多關於python開發的內容,精彩真的不容錯過!
這里每篇文章都有實現代碼,但是代碼我一般都不會分
析,更多地是分析演算法思想,所以內容都比較多,即便如此也沒有包括原書對應章節的所有內容,因為內容實在太豐富了,所以我只是選擇經典的演算法實例來介紹算
法核心思想,除此之外,還有不少內容是原書沒有的,部分是來自演算法導論,部分是來自我自己的感悟,嘻嘻。該篇對於大神們來說是小菜,請一笑而過,對於菜鳥
們來說可能有點難啃,所以最適合的是和我水平差不多的,對各個演算法都有所了解但是理解還不算深刻的半桶水的程序猿,嘿嘿。
本篇的順序按照原書[Python Algorithms: Mastering Basic Algorithms in the Python Language](Python Algorithms: Mastering Basic Algorithms in the Python Language)的章節來安排的(章節標題部分相同部分不同喲),為了節省時間以及保持原著的原滋原味,部分內容(一般是比較難以翻譯和理解的內容)直接摘自原著英文內容。
**1.
你也許覺得很多內容你都知道嘛,沒有看的必要,其實如果是我的話我也會這么想,但是如果只是歸納一個演算法有哪些步驟,那這個總結也就沒有意義了,我覺得這
個總結的亮點在於想辦法說清楚一個演算法是怎麼想出來的,有哪些需要注意的,如何進行優化的等等,採用問答式的方式讓讀者和我一起來想出某個問題的解,每篇
文章之後都還有一兩道小題練手喲**
**2.你也許還會說演算法導論不是既權威又全面么,基本上每個演算法都還有詳細的證明呢,讀演算法導論豈
不更好些,當然,你如果想讀演算法導論的話我不攔著你,讀完了感覺自己整個人都不好了別怪小弟沒有提醒你喲,嘻嘻嘻,左一個性質右一個定理實在不適合演算法科
普的啦,沒有多少人能夠堅持讀完的。但是碼農與蛇的故事內容不多喲,呵呵呵**
**3.如果你細讀本系列的話我保證你會有不少收獲的,需要看演算法導論哪個部分的地方我會給出提示的,嘿嘿。溫馨提示,前面三節內容都是介紹基礎知識,所以精彩內容從第4節開始喲,么么噠 O(∩_∩)O~**
(1)[Python Algorithms - C1 Introction](Python Algorithms)
本節主要是對原書中的內容做些簡單介紹,說明演算法的重要性以及各章節的內容概要。
(2)[Python Algorithms - C2 The basics](Python Algorithms)
**本節主要介紹了三個內容:演算法漸近運行時間的表示方法、六條演算法性能評估的經驗以及Python中樹和圖的實現方式。**
(3)[Python Algorithms - C3 Counting 101](Python Algorithms)
原書主要介紹了一些基礎數學,例如排列組合以及遞歸循環等,但是本節只重點介紹計算演算法的運行時間的三種方法
(4)[Python Algorithms - C4 Inction and Recursion and Rection](Python Algorithms)
**本節主要介紹演算法設計的三個核心知識:Inction(推導)、Recursion(遞歸)和Rection(規約),這是原書的重點和難點部分**
(5)[Python Algorithms - C5 Traversal](Python Algorithms)
**本節主要介紹圖的遍歷演算法BFS和DFS,以及對拓撲排序的另一種解法和尋找圖的(強)連通分量的演算法**
(6)[Python Algorithms - C6 Divide and Combine and Conquer](Python Algorithms)
**本節主要介紹分治法策略,提到了樹形問題的平衡性以及基於分治策略的排序演算法**
(7)[Python Algorithms - C7 Greedy](Python Algorithms)
**本節主要通過幾個例子來介紹貪心策略,主要包括背包問題、哈夫曼編碼和最小生成樹等等**
(8)[Python Algorithms - C8 Dynamic Programming](Python Algorithms)
**本節主要結合一些經典的動規問題介紹動態規劃的備忘錄法和迭代法這兩種實現方式,並對這兩種方式進行對比**
(9)[Python Algorithms - C9 Graphs](Python Algorithms)
**本節主要介紹圖演算法中的各種最短路徑演算法,從不同的角度揭示它們的內核以及它們的異同**
Ⅷ Python數據類型和數據結構。
1.1元組的創建
創建時可不指定元素的個數,相當於不定長的數組,但一旦創建就不能修改元組的長度。
tuple = (元素1, 元素2, ...)
#創建並初始化
tuple = ("apple", "banana","grape", "orange" )
#創建一個空的元組
tuple = ()
Ⅸ python 怎麼學習數據結構
在Python中有三種內建的數據結構——列表、元組和字典
1:列表:
列表list是處理一組有序項目的數據結構,即你可以在一個列表中存儲一個序列的項目, 在Python中,你在每個項目之間用逗號分割
列表中的項目應該包括在方括弧中,這樣Python就知道你是在指明一個列表。如,可以看出來,列表可以有字元串,也可以有數字。即可以包含多種類型。
Ⅹ python中{}[]是什麼用法
python中{}[]是無世紀的年份。
%Y會被無世紀的年份所替代。%m會被01到12之間的一個十進制月份數替代,其他依次類推。
(1)%c 整數轉成對應的 ASCII 字元;
(2)%d 整數轉成十進位;
(3)%f 倍精確度數字轉成浮點數;
(4)%o 整數轉成八進位。
(10)python大括弧數據結構擴展閱讀:
由於Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經採用Python來教授程序設計課程。例如卡耐基梅隆大學的編程基礎、麻省理工學院的計算機科學及編程導論就使用Python語言講授。
眾多開源的科學計算軟體包都提供了Python的調用介面,例如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫學圖像處理庫ITK。