209 emacs lisp向列表中增加元素

2021-10-02 15:44:27 字數 1425 閱讀 4106

完整的common lisp的學習集合整理如下:

繼續學習spacemacs的配置,從中學點emacs lisp的基礎知識。前面做了初始化的分析:

之前分析了上面的**執行,啟動emacs之後,if條件並不成立,因此會執行load-file的操作。之後,將會載入制定的檔案。檔案載入前面也做了分析,之後被載入的檔案是下面的這個檔案:

接下來,這個檔案的資訊會被載入到執行環境中。為了弄明白這個配置究竟在做什麼,接下來看看這個檔案的內容。

首先,這個檔案中定義了乙個函式。為了弄明白這個函式的功能,需要先熟悉一下add-to-list函式。這個也就是本次的學習點了。檢視函式的幫助資訊如下:

這個功能,可以模擬之前學過的python裡面的列表處理功能。向列表中增加元素,不過不同的是這裡的列表有點雜湊或者字典的意思。但是,這個列表又不同於雜湊,因為這個列表是有順序的。預設情況下,加入到表頭,指定引數後可以實現追加。這麼看來,這個函式很有c語言資料結構中的鍊錶的操作方式的意思,只是這個功能又增加了乙個檢查是否存在的功能。

檢查是否存在的功能,可以使用預設的功能,也可以使用自己指定的函式。看起來,這個函式在實現上的技巧性確實是很高了。要完成這麼一系列的功能,又能夠容納不同的資料型別,這是乙個很龐大的基礎設計實現,至少c不會很容易。或許,這算是lisp的高階點?

接下來,測試學習這個函式。相應的測試按照elisp的文件來做一遍:

建立了變數列表。

成功增加了元素c。

由於b已經存在,增加無效。

我自己再增加乙個追加功能的測試:

從上面的效果看,d被成功追加到了列表中。

Python向列表中插入元素 列表

python列表中的元素種類可以是相同的也可以是不同的,如 num 1 2 3 4 str python 1 中國 nmu 1 2 3 4 str python 1 中國 phone 諾基亞 三星 oppo 華為 print phone 諾基亞 三星 oppo 華為 2 extend 在列表末尾新增...

Python 向函式傳遞列表

在實際使用中你會發現,向函式傳遞列表是比較實用的,這種列表可能包含名字 數字 可能更複雜的物件 字典 假設向乙個函式傳遞一堆水果,我們說出我們喜歡所有的水果 def obj fruits for fruit in fruits msg i like fruit print msg l orange ...

關於向列表迴圈新增字典

例如 list 路人甲 路人乙 路人丙 new list dict for i in range 3 dict name list i dict print new list 結果 這是因為 字典 dict 在python裡是object,不屬於primitive type 即int float s...