元組是f#中特有的一種資料型別,一種非常方便的資料型別,型別為system.tuple<_>。
它是一些值的組合,通過逗號來分隔每個元素,元素可以是任何的資料型別。
元組和鍊錶的區別:
鍊錶:元素的個數是可變的,但元素必須是相同的資料型別。
元組:元素的個數是固定的,元素的型別可以是不同的資料型別。
使用元組的乙個好處就是,如果用元組來作為函式的返回值進行返回,就可以很方便地從乙個函式中返回多個值。
元組的表示方法:
(元素1,元素2,…,元素n)
下面是一些示例:
> let dinner = ("green eggs", "ham");; //兩個字串組成的元組
val dinner : string * string = ("green eggs", "ham")
> let zeros = (0, 0l, 0i, 0.0);; //各種數字型別組成的元組,分別對應下面的型別
val zeros: int * int64 * system.numerics.biginteger * float = (0, 0l, 0, 0.0)
元組的資料型別是各元素的資料型別之間用*鏈結起來所構成的新的資料型別。
元組也可以巢狀元組:
> let nested = (1, (2.0, 3m), (4l, "5", '6'));; //乙個元組中巢狀了兩個元組
val nested : int * (float * decimal) * (int64 * string * char) =
(1, (2.0, 3m), (4l, "5", '6'))
使用元組中的元素的時候,第乙個元素叫fst,第二個元素叫snd,使用第三個以上的元素時用模式匹配。
> let nametuple = ("john", "smith");;
val nametuple : string * string = ("john", "smith")
>fstnametuple;;
val it :string = "john"
>sndnametuple;;
val it :string = "smith"
> let snacks = ("soda", "cookies","candy");; //含有三個以上元素的元組
val snacks : string * string * string = ("soda", "cookies","candy")
> let x, y, z = snacks;; //用多個變數來匹配各個元素的值
val z :string = "candy"
val y :string = "cookies"
val x :string = "soda"
> x;;
val it :string = "soda"
元組作為引數傳遞給函式,注意跟普通部分函式的區別:
> let add x y = x + y;; //部分函式,顧名思義就是可以拆分的函式
//它可以被拆分使用,提高**使用率,比如碰到每個操作都有某個相同引數時:
//如計算每個元素加一後的值
//let fun1 = add 1
//let fun2 y = fun1 y
val add :int -> int -> int
> let tupledadd(x, y) = x + y;;
val tupledadd : int * int -> int
> add3 7;;
val it :int = 10
>tupledadd(3, 7);;
val it :int = 10
python入門 元組tuple 三
增 元組格式是寫在括號裡,注意與列表 寫在中括號裡 的區別 tup1 math beijing 1997,2000 tup2 1,2,3,4,5 用逗號隔開且等號左邊只有乙個變數時,編譯器會認為這是乙個tuple,不推薦這種寫法 tup3 a b c d 建立空元組 tup1 元組中只包含乙個元素時...
列表 元組(tuple)
1.建立和訪問元組 temp 1,2,3,4,5,6 temp 1 2 temp 5 6,temp 2 3,4,5,6 temp2 temp 1 temp2 2,3,4,5,6 元組的訪問同列表一樣 2.元組不能被修改 temp 1 9 traceback most recent call last...
python入門系列7 tuple 元組
python 作為乙個發展中的語言,也提供了其他的一些資料型別。tuple也是 python 中乙個標準的序列型別。他的一些操作和str和list是通用的,因為他們都是一種序列 sequence data type 支援索引 切片 連線,支援使用內建len 來獲取tuple中元素的個數。另外tupl...