導航:首頁 > 編程語言 > pythonshujujiegou

pythonshujujiegou

發布時間:2022-10-21 03:34:29

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

㈡ 利用Python進行數據分析筆記:3.1數據結構

元組是一種固定長度、不可變的Python對象序列。創建元組最簡單的辦法是用逗號分隔序列值:

tuple 函數將任意序列或迭代器轉換為元組:

中括弧 [] 可以獲取元組的元素, Python中序列索引從0開始

元組一旦創建,各個位置上的對象是無法被修改的,如果元組的一個對象是可變的,例如列表,你可以在它內部進行修改:

可以使用 + 號連接元組來生成更長的元組:

元組乘以整數,則會和列表一樣,生成含有多份拷貝的元組:

將元組型的表達式賦值給變數,Python會對等號右邊的值進行拆包:

拆包的一個常用場景就是遍歷元組或列表組成的序列:

*rest 用於在函數調用時獲取任意長度的位置參數列表:

count 用於計量某個數值在元組中出現的次數:

列表的長度可變,內容可以修改。可以使用 [] 或者 list 類型函數來定義列表:

append 方法將元素添加到列表尾部:

insert 方法可以將元素插入到指定列表位置:
插入位置范圍在0到列表長度之間

pop 是 insert 的反操作,將特定位置的元素移除並返回:

remove 方法會定位第一個符合要求的值並移除它:

in 關鍵字可以檢查一個值是否在列表中;
not in 表示不在:

+ 號可以連接兩個列表:

extend 方法可以向該列表添加多個元素:

使用 extend 將元素添加到已經存在的列表是更好的方式,比 + 快。

sort 方法可以對列表進行排序:

key 可以傳遞一個用於生成排序值的函數,例如通過字元串的長度進行排序:

bisect.bisect 找到元素應當被插入的位置,返回位置信息
bisect.insort 將元素插入到已排序列表的相應位置保持序列排序

bisect 模塊的函數並不會檢查列表是否已經排序,因此對未排序列表使用bisect不會報錯,但是可能導致不正確結果

切片符號可以對大多數序列類型選取子集,基本形式是 [start:stop]
起始位置start索引包含,結束位置stop索引不包含

切片還可以將序列賦值給變數:

start和stop可以省略,默認傳入起始位置或結束位置,負索引可以從序列尾部進行索引:

步進值 step 可以在第二個冒號後面使用, 意思是每隔多少個數取一個值:

對列表或元組進行翻轉時,一種很聰明的用法時向步進值傳值-1:

dict(字典)可能是Python內建數據結構中最重要的,它更為常用的名字是 哈希表 或者 關聯數組
字典是鍵值對集合,其中鍵和值都是Python對象。
{} 是創建字典的一種方式,字典中用逗號將鍵值對分隔:

你可以訪問、插入或設置字典中的元素,:

in 檢查字典是否含有一個鍵:

del 或 pop 方法刪除值, pop 方法會在刪除的同時返回被刪的值,並刪除鍵:

update 方法將兩個字典合並:
update方法改變了字典元素位置,對於字典中已經存在的鍵,如果傳給update方法的數據也含有相同的鍵,則它的值將會被覆蓋。

字典的值可以是任何Python對象,但鍵必須是不可變的對象,比如標量類型(整數、浮點數、字元串)或元組(且元組內對象也必須是不可變對象)。
通過 hash 函數可以檢查一個對象是否可以哈希化(即是否可以用作字典的鍵):

集合是一種無序且元素唯一的容器。

set 函數或者是用字面值集與大括弧,創建集合:

union 方法或 | 二元操作符獲得兩個集合的聯合即兩個集合中不同元素的並集:

intersection 方法或 & 操作符獲得交集即兩個集合中同時包含的元素:

常用的集合方法列表:

和字典類似,集合的元素必須是不可變的。如果想要包含列表型的元素,必須先轉換為元組:

㈢ 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中最基本的數據結構。序列中的每個元素都分配一個數字
-
它的位置,或索引,第一個索引是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,因為結束位的元素不包括,所以只能留空

㈤ r語言和python的區別是什麼

一、數據結構不同

1、r語言:r語言數據結構簡單,主要包括向量一維、多維數組二維時為矩陣、列表非結構化數據、數據框結構化數據。

2、python:python數據結構豐富,包含更豐富的數據結構來實現數據更精準的訪問和內存控制,多維數組。

二、用途不同

1、r語言:它是一個用於統計計算和統計制圖的優秀工具。

2、python:自Python由Guido van Rossum於1989年底發明創建以來,基於此項技術的網站和軟體項目已經有了數千個。Python 由於其獨特性,使其在各種編程語言中脫穎而出,在全世界擁有大量擁護它的程序員

三、特點不同

1、r語言:r語言是專門為統計和數據分析開發的語言,各種功能和函數琳琅滿目,其中成熟穩定的一抓一把。體積輕便,運行起來系統負擔也小。

2、python:Python 語言是在 ABC 教學語言的基礎上發展來的;遺憾的是,ABC 語言雖然非常強大,但卻沒有普及應用,Guido 認為是它不開放導致的。

㈥ 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中List,Queue等數據結構存儲效率哪個更優

python中的數據結構有:set,list,Queue,dict,tuple等;
效率問題,主要看你使用場景:
比如要判斷一個值是否存在,set肯定快,應為是使用hash,
如果保持數據的順序性:當時list和Queue,但是list不是線程安全的,但是Queue是,
tuple是不可變的
dict是字典,和json差不多,使用於key-value類型,效率也比較高;
所以主要根據使用場景去選擇合適的數據結構,每種數據結構的存在都是有他的應用空間,不然效率低的早就淘汰了。

㈧ Python數據結構之Array用法實例

Python數據結構之Array用法實例
這篇文章主要介紹了Python數據結構之Array用法實例,較為詳細的講述了Array的常見用法,具有很好的參考借鑒價值,需要的朋友可以參考下
import ctypes

class Array:
def __init__(self, size):
assert size > 0, "Array size must be > 0 "
self._size = size
pyArrayType = ctypes.py_object * size
self._elements = pyArrayType()
self.clear(None)

def clear(self, value):
for index in range(len(self)):
self._elements[index] = value

def __len__(self):
return self._size

def __getitem__(self, index):
assert index >= 0 and index < len(self), "index must >=0 and <= size"
return self._elements[index]

def __setitem__(self, index, value):
assert index >= 0 and index < len(self), "index must >=0 and <= size"
self._elements[index] = value

def __iter__(self):
return _ArrayIterator(self._elements)

class _ArrayIterator:
def __init__(self, theArray):
self._arrayRef = theArray
self._curNdr = 0

def __next__(self):
if self._curNdr < len(theArray):
entry = self._arrayRef[self._curNdr]
sllf._curNdr += 1
return entry
else:
raise StopIteration

def __iter__(self):
return self

class Array2D :
def __init__(self, numRows, numCols):
self._theRows = Array(numCols)
for i in range(numCols):
self._theRows[i] = Array(numCols)

def numRows(self):
return len(self._theRows)

def numCols(self):
return len(self._theRows[0])

def clear(self, value):
for row in range(self.numRows):
self._theRows[row].clear(value)

def __getitem__(self, ndxTuple):
assert len(ndxTuple) == 2, "the tuple must 2"
row = ndxTuple[0]
col = ndxTuple[1]
assert row>=0 and row <len(self.numRows())
and col>=0 and col<len(self.numCols),
"array subscrpt out of range"
theArray = self._theRows[row]
return theArray[col]

def __setitem__(self, ndxTuple, value):
assert len(ndxTuple)==2, "the tuple must 2"
row = ndxTuple[0]
col = ndxTuple[1]
assert row >= 0 and row < len(self.numRows)
and col >= 0 and col < len(self.numCols),
"row and col is invalidate"
theArray = self._theRows[row];
theArray[col] = value
希望本文所述對大家的Python程序設計有所幫助。

㈨ python中都有哪些數據類型

python中數據類型有:整型、長整型、浮點型、字元串類型、布爾類型、列表類型、元組類型、字典類型、集合類型。

數據類型是每種編程語言必備屬性,只有給數據賦予明確的數據類型,計算機才能對數據進行處理運算,因此,正確使用數據類型是十分必要的,不同的語言,數據類型類似,但具體表示方法有所不同,以下是Python編程常用的數據類型:

1. 數字類型

Python數字類型主要包括int(整型)、long(長整型)和float(浮點型),但是在Python3中就不再有long類型了。

int(整型)

在32位機器上,整數的位數是32位,取值范圍是-231~231-1,即-2147483648~214748364;在64位系統上,整數的位數為64位,取值范圍為-263~263-1,即9223372036854775808~9223372036854775807。

long(長整型)

Python長整型沒有指定位寬,但是由於機器內存有限,使用長的長整數數值也不可能無限大。

float(浮點型)

浮點型也就是帶有小數點的數,其精度和機器有關。

complex(復數)

Python還支持復數,復數由實數部分和虛數部分構成,可以用 a + bj,或者 complex(a,b) 表示, 復數的實部 a 和虛部 b 都是浮點型。

2. 字元串

在Python中,加了引號的字元都被認為是字元串,其聲明有三種方式,分別是:單引號、雙引號和三引號;Python中的字元串有兩種數據類型,分別是str類型和unicode類型,str類型採用的ASCII編碼,無法表示中文,unicode類型採用unicode編碼,能夠表示任意字元,包括中文和其他語言。

3. 布爾型

和其他編程語言一樣,Python布爾類型也是用於邏輯運算,有兩個值:True(真)和False(假)。

4. 列表

列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型,可對集合進行創建、查找、切片、增加、修改、刪除、循環和排序操作。

5. 元組

元組和列表一樣,也是一種序列,與列表不同的是,元組是不可修改的,元組用」()」標識,內部元素用逗號隔開。

6. 字典

字典是一種鍵值對的集合,是除列表以外Python之中最靈活的內置數據結構類型,列表是有序的對象集合,字典是無序的對象集合。

7. 集合

集合是一個無序的、不重復的數據組合,它的主要作用有兩個,分別是去重和關系測試。

推薦課程:Python3機器學習快速入門(黑馬程序員)

㈩ python 數據結構 有哪些

# -*- coding: <utf-8> -*-
#-------------------2017-7-20------------------
#-------------------【字元串】--------------------
#字元串:單引號,雙引號都可以
print("HelloWorld");
print('HelloWorld')
print(''' This is the first line
This is the second line
This is the last line''')

#Format字元串
age = 3;
name = "Tom"
print("{0} is {1} years old".format(name, age)) #格式列印:換行
#數值--->字元串: str()方法
s = str(age)
print("s = " + s)
print(name + " is " + str(age) + " years old ") #字元串的拼接
print(name, " is ", str(age), " years old ") #字元串的拼接:逗號連接也是可以的
print("What's your name? \nTom")

#-------------------【數據類型】--------------------
#Python的數據類型生命的時候不用聲明類型,系統自己會識別
a = 3
b = 4
c = 5.66
d = 8.0
e = complex(c, d)
f = complex(float(a), float(b))
print("a is type", type(a))
print("c is type", type(c))
print("e is type", type(e))
print("a + b = ", a + b)
print("a / b = ", a / b)
print("c / a = ", c / a)
print("c // a = ", c // a) #往下圓整為最接近的整數
print("e = ", e)
print("e + f = ", e + f)
#-------------------【列表:List:不要求List中的元素是同種類型】--------------------
#首先是列印中文
print("你好") #需要在上方設置成utf-8的編碼形式
#創建一個list
number_List = [1, 2, 3, 4, 5] #方括弧,逗號隔開,索引從0開始
print(number_List)
print("number_List = " + str(number_List))
#創建一個以字元串為列表的List
string_List= ["abc", "cde", "fhi"]
mixed_List = [1, "java", 3, "A"]
print("string_List = " + str(string_List))
print("mixed_List = " + str(mixed_List))
#訪問列表中的元素
second_Number = number_List[1]
second_string = string_List[1]
print("second_Number = " + str(second_Number))
print("second_string = " + str(second_string))
#更新列表中的元素
number_List[1] = 40
print("number_List = " + str(number_List))
#刪除列表中的元素
del number_List[1] #del 方法
print("after deleting: number_List = " + str(number_List))
#一些List的操作
print(len([1,2,3])) #長度
print([1,2,3] + [4,5,6]) #拼接
print(["Hello"] * 4) #復制
print(3 in [1,2,3]) #判斷是否在List中
abcd_List = ["a", "b", "c", "d"]
print(abcd_List[1])
print(abcd_List[-2]) #列印倒數第二個
print(abcd_List[1:]) #截取1-end的元素:冒號「:」指一直到結尾
List_a = [1,2,3]
List_a.append(4) #append 方法
print("After append: List_a = " + str(List_a))
List_a.remove(2) #remove 方法
print("After remove: List_a = " + str(List_a))
#-------------------【元組:tuple】--------------------
#tuple是一個特殊的List,但是是一個一旦創建就不可更改的List
#但是tuple裡面的list裡面的元素是可以更改的
#tuple沒有append, extend, remove, pop方法
tuple_1 = (2,) #逗號是一定要加的
mixed_tuple = (1, 2, [1, 2])
print("mixed_tuple = " + str(mixed_tuple))
#tuple的元素的更改
mixed_tuple[2][0] = "c"
mixed_tuple[2][1] = "d"
#mixed_tuple[1] = 4 #tuple裡面的數據不可更改,但是tuple裡面的List的不能改了
print("after modified: mixed_tuple = " + str(mixed_tuple))
#tuple裡面的元素不可更改,但是可以將tuple當做一個整體進行刪除
del mixed_tuple #作為一個整體將tuple刪除
#一些tuple的操作
print(len((1,2,3))) #長度
print((1,2,3) + (4,5,6)) #拼接
print(("Hello") * 4) #復制
print(3 in (1,2,3)) #判斷是否在List中
abcd_tuple = ["a", "b", "c", "d"]
print(abcd_tuple[1])
print(abcd_tuple[-2]) #列印倒數第二個
print(abcd_tuple[1:]) #截取1-end的元素:冒號「:」指一直到結尾
#-------------------【字典:】--------------------
#tuple是一個特殊的List,但是是一個一旦創建就不可更改的List

閱讀全文

與pythonshujujiegou相關的資料

熱點內容
macpdfword轉換器 瀏覽:904
壓縮面膜是什麼材質 瀏覽:353
抖音發布作品怎麼建文件夾 瀏覽:13
安卓如何更改谷歌地區 瀏覽:273
airpods為什麼安卓連上聲音很大 瀏覽:510
聯想伺服器按鈕怎麼開不了機 瀏覽:93
蘋果xrapp程序庫沒有了怎麼辦 瀏覽:843
在上海程序員一個月多少工資 瀏覽:326
k歌解壓圖片 瀏覽:579
cad中清理多餘圖層的命令 瀏覽:989
華為nova8xe是安卓什麼 瀏覽:58
湯姆貓伺服器為什麼免費 瀏覽:274
safenet加密狗怎麼用 瀏覽:41
phpsql查詢變數 瀏覽:104
地磅儀表盤加密方法 瀏覽:480
brew安裝php環境 瀏覽:829
電腦版釘釘如何加密 瀏覽:709
android動畫結合 瀏覽:925
androidfb0 瀏覽:579
我的世界怎麼給伺服器稱號 瀏覽:462