erlang中的元組與列表的區別與聯絡

2021-07-30 07:57:57 字數 1334 閱讀 1644

在erlang程式設計中,元組與列表本人很容易混淆,不知道什麼時候應該使用元組,什麼時候應該使用列表,為此,我查閱了一些網上的資料,並新增了一些

元組:將一定數量項組成在一起,就形成了乙個單一的實體,並且若干個項之間使用逗號隔開,形成的整個實體使用{}括起來,這樣就形成了乙個元組。這個元組的概念有點像c語言中的結構體,因為在erlang程式中並沒有結構體這個概念,因此為了描述乙個實體多方面的屬性值的時候就引用了這個概念,我們可以把這個元組的概念和c語言中的結構體概念對比著理解。另外,一旦元組建立之後,元組項的個數就不能再變化了。其實元組就是原子。

例如,我們要描述一台電腦的時候可以這麼來描述:

, , }

細心的人可能發現,在這個元組當中我又一次巢狀了元組,是的,元組是可以巢狀的。

總結一下:元組也是乙個原子。

列表:將不定數量的項組在一起,再加上括號,就形成了列表。列表的每一項可以是元組,也可以仍是列表,即列表是可以允許巢狀使用的。

和元組的主要區別是列表是儲存可變數目的東西,建立乙個列表之後,我們仍然可以往其中增加項,當然可以刪除項,因此列表使用的話比較靈活一些。

例如,我們要描述張三買了一台電腦,李四買了一件新衣服:

[, ]

接著李四賣掉新衣服,買了乙個外星人,王五買了拖拉機,準備當農民,這樣的話,列表就變成了這樣的:

[, , ]

由此我們可以看出,列表中的項的個數是可以變化的,數目不定。

元組與列表對比:

(1)從建立的角度來說。

在宣告元組的時候,就自動建立了乙個元組。

而對於列表來說,建立乙個列表有兩種方式,一種是直接定義,例如:f=[abc];另外一種是在已經建立的基礎上再次新增乙個項,那新構成的這個仍然是列表。

(2)從提取的角度來說。

從元組中提取字段值的時候,我們一般使用的是「=」來提取,而對於列表來說,使用的仍然還是模式匹配,只不過對於列表來說的話,我們每一次只能提取這個列表的頭部,也就說一次只能提取乙個項。

例如,對於元組提取元素的使用如下:

.= a.).

[fanying]

.[yingfei|a]

.[flying|b]

.[f|m]

=c.

/erl_test]3$ cat fan.erl

.[test/0]).

)->

) of

->

"result is error!~n");

->

"result is ~p~n"

,[result]).

)->

.   

/erl_test]4$

0

給主人留下些什麼吧!~~

python中的列表與元組

python當中沒有陣列這個概念,但是有比陣列更為強大且功能齊全的列表。建立列表 建立列表和建立普通變數一樣,用中括號括起來一堆資料就可以了,資料之間用逗號隔開,這樣乙個普普通通的列表就建立成功了 列表裡可以有整型 字串 浮點型,甚至列表裡面包含另乙個列表,如果實在想不到往列表裡面塞什麼資料的時候,...

Python中列表與元組的用法

test a 55,df 可以加入任何元素 print test 有序的集合 print test 0 title print test 1 python提供 1表示最後乙個 修改test 0 b print test 0 增加元素 print test 刪除元素 del test 2 print ...

python中列表與元組

pop 移除指定索引的一項 insert 指定索引位置前插入一項 remove 按照值移除元素 sort 排序 reverse 對列表進行反轉 index 獲取索引 del 刪除 列表中還可以巢狀列表 列表的解析操縱 one line表示式 a 1,2 x,y a x 1,y 2 d d.keys ...