元組是一種不可改變的序列,它裡面的內容是不可以被改變的。元組屬於序列,它和列表相似,最主要的區別就是元組建立之後就不能再對裡面的元素進行增刪操作。
元組的一般形式為:(1,2,3,4,5,6)
它與列表結構的區別在於它使用小括號『()』,裡面每個元素之間用『,』隔開,在元組中同樣可以存放整數、字串、列表等型別的內容。
1. 建立元組和刪除元組
建立可以採用多種方式。
1) 建立空元組
建立空元組和列表方式一樣,語法格式為:my_tuple = ()
下面看個例子:my_tuple = ()#建立空元組
print(my_tuple)#輸出
print('資料型別',type(my_tuple))#看一下它的型別
輸出結果:()
資料型別
2) 直接賦值建立元組
直接賦值的語法格式:my_tuple = (value1,value2,value3,value4,value5)
my_tuple為列表名,value1~value5位元組中的各個元素,可以是整數、字串或者列表,看下面的例子:my_tuple = ('www.dotcpp.com','123456',[1,2,3,4,5,6])#建立元組並直接進行賦值
print(my_tuple)#輸出
輸出結果:('www.dotcpp.com', '123456', [1, 2, 3, 4, 5])
3) 使用range()函式建立
使用range()函式我們可以建立具有一定資料規模的元組。看下面例子:my_tuple = tuple(range(1,100,3))#range(1,100,3)建立了乙個1-100之間步長為3的序列,最後使用tuple()強制轉換為元組型別
print(my_tuple)#輸出
輸出為:(1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58,
61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97)
2. 刪除元組
刪除元組的方式和列表相同,使用del語句直接進行刪除,語法形式為:del my_tuple
如下例:>>> my_tuple = tuple(range(1,100,3))#range(1,100,3)建立了乙個1-100之間步長為3的序列,最後使用tuple()強制轉換為元組型別
>>> del my_tuple#刪除元祖
>>> print(my_tuple)#這時候再輸出就會報錯
traceback (most recent call last):
file "", line 1, in
nameerror: name 'my_tuple' is not defined
3. 訪問元組元素
我們在訪問元組元素的時候同樣是根據索引位置去找到所要訪問的元素。
我們先建立乙個元組 my_tuple = (『a』,』b』,』c』,』d』)
然後看一下**:my_tuple = ('a','b','c','d')
print(my_tuple[0],my_tuple[1],my_tuple[2],my_tuple[3])
輸出結果:a b c d
看一下對應**:元組abc
索引012
4. 元組元素的修改
因為元組是不可變的數列,所以我們不可以對其元素進行修改,如果採用列表形式直接通過索引值進行修改的話會出現錯誤資訊。>>> my_tuple = (1,2,3,4,5,6)
>>> my_tuple[2] = 6
traceback (most recent call last):
file "", line 1, in
typeerror: 'tuple' object does not support item assignment
所以我們如果要修改元組中的元素就要採用其他的方法。通常會採用兩種方式,一種是重新賦值法,一種是型別轉換法。
1) 重新賦值法》 mytuple = (11,22,33,44,55,66,77)
>>> mytuple = (1,2,3)
>>> mytuple
(1, 2, 3)
這樣的覆蓋方式可以很簡單的修改了元組中的元素,當然這種方式的使用範圍受到限制,因此我們在大多數情況下可以採用第二種。
2) 型別轉換法
如果要對元組的第一百元素進行修改,那麼採用上面方式就顯得十分麻煩,因此可以採用型別轉換,先把元組轉換成其他資料型別,例如轉換為列表,一般情況下我們 都是轉成列表進行操作。
看下面例子:my_tuple = (1,2,3,4,5,6)#先建立乙個元組
my_tuple = list(my_tuple)#把元組轉換為列表形式
print(my_tuple,type(my_tuple))#輸出看一下現在的資料和型別
my_tuple.insert(3,'插入新元素')#在列表型別下進行元素的插入或更改或刪除
my_tuple[3] =['元素的更改']
my_tuple.pop()#元素的刪除,pop()自動刪除最後一項,也就是對應的6
my_tuple = tuple(my_tuple)#最後轉換為元組形式
print(my_tuple,type(my_tuple))#列印
輸出結果:[1, 2, 3, 4, 5, 6]
(1, 2, 3, ['元素的更改'], 4, 5)
5. 總結
元組相對於列表缺少了一些功能,但元組也有它的獨特之處,首先元組的效能是比較高的,處理元組的速率要快於列表,其次是它非常安全,當資料規模較大的時候,使用元組能保障你的資料不會被修改,確保了安全性,在儲存方面是乙個很好的選擇。
進退法例子
進退法例子,遇到具體問題還得修改,以後最速下降梯度法的梯度方向是變化的,這是其中乙個要考慮的改變。進退法具體演算法 實現 include stdafx.h include include include define n 2 using namespace std float testfunctio...
回溯法 例子
一句話開場 回溯法就是對隱式圖的深度優先搜尋 bool finished false 是否獲得全部解?backtrack int a,int k,data input int c maxcandidates 這次搜尋的候選 int ncandidates 候選數目 int i counter if ...
Dinic演算法例子
寫法 1 用鄰接矩陣儲存各個流的起點終點 2 用bfs把圖分出層次 記錄到各個點需要流幾次 3 用dfs對圖找出增廣路進行流量擴充 注意反向流要記錄成容量為0的路徑,更新正向流時也要更新反向流 教材361頁 includeusing namespace std struct edge edge ed...