tuple用於傳遞復合型別的資料,介於基礎型別和類之間,複雜的資料通過類(或結構)儲存,稍簡單的通過元組。
元組是使用非常便利的利器,有必要整理一篇博文。
使用括號(), 括號內以逗號分割各種型別的資料, 形式如
(int, string)或 (string, int, string......)
如:
userzhangsan = ("zhangsan", "張三", "越秀區清水濠小學", 9, "三年級", true)//讀取元組中的元素,如:
userzhangsan[
0] //
"zhangsan"
userzhangsan[
1] //
"張三"
userzhangsan[
2] //
"越秀區清水濠小學"
userzhangsan[
3] //
9userzhangsan[
4] //
"三年級"
還有另外一種方法也能以變數名的方式去訪問元組中的資料,那就是在元組初始化的時候就給它乙個變數名:
let userinfo = (name:"zhangsan
" ,ismale:true, age:22
)userinfo.name
//zhangsan
userinfo.ismale //
true
userinfo.age //
22
分解和變數轉換
對於
let http404error = (404, "not found")
你可以將乙個元組的內容分解(decompose)成單獨的常量或變數,然後你就可以正常使用它們了:
//輸出 "the status code is 404"
print("
the status message is \(statusmessage)")
//輸出 "the status message is not found"
如果你只需要一部分元組值,分解的時候可以把要忽略的部分用下劃線(_)標記:
//輸出 "the status code is 404"
//一般我們的變數賦值這麼幹:
var a = 1
var b = 2
var c = 3
//現在可以用一行替代:
var (a, b, c) = (1, 2, 3)//
變數交換就是這麼簡單:
(a, b) = (b, a)
用var定義的元組就是可變元組,let定義的就是不可變元組。不管是可變還是不可變元組,元組在建立後就不能對其長度進行增加和刪除之類的修改,只有可變元組能在建立之後修改元組中的資料:
var userinfo = (name:"bannings
" ,true, age:22) //
定義可變元組
userinfo.name = "
newname
"userinfo.name
//newname
let userinfo1 = (name:"
bannings
" ,true, age:22) //
定義不可變元組
userinfo1.name = "
newname"//
報錯,不可修改
func divmod(_ a: int, _ b:int) ->(int, int)divmod(
7, 3) //
(2, 1)
divmod(5, 2) //
(2, 1)
divmod(12, 4) //
(3, 0)
//或者使用命名的版本:
func divmod(_ a: int, _ b:int) ->(quotient: int, remainder: int)
divmod(
7, 3) //
(quotient: 2, remainder:1)
divmod(5, 2) //
(quotient: 2, remainder:1)
divmod(12, 4) //
(quotient: 3, remainder:0)
scala中的tuple元組
problem 你想要建立乙個集合,集合元素型別是多樣的。solution 元組為你提供了一種方式來儲存不同型別的元素在乙個容器內,這在許多情況下是非常有用的。新建乙個元祖通過把需要的額元組包在一組小括號內。下面是乙個二元祖 scala val d debi 95 d string,int debi...
Python 中的元組(tuple)
tuple 是一種序列型別的資料,跟 list str 類似。tuple 中的元素不能更改,這點跟 list不同,跟 str 類似 tuple 的元素可以是任何型別的資料,這點上跟 list 相同,但不同於 str。因此,tuple 融合了部分 list 和部分 str 的屬性。t 1,23 123...
Python中的元組 Tuple
元組一旦建立就不可更改 元組的格式 tuple tuple1 1 tuple2 1,tuple3 1,2,3,4 print tuple print type tuple print 33 print tuple1 print type tuple1 print 33 print tuple2 pr...