假设我有一个缺点列表,如下所示:
(setq foo '(("a" . 1) ("b" . 2) ("c" . 3)))
Run Code Online (Sandbox Code Playgroud)
我想通过"密钥名称"检索特定缺点单元格的值.有没有让我这样做的功能?
例如
(get-by-key "a" foo) ;; => 1
Run Code Online (Sandbox Code Playgroud)
或类似的东西.提前致谢!
dki*_*kim 10
这样的列表称为关联列表,或简称alist.形式上,关联列表是密钥及其关联值的一致性列表.
该assoc功能正是您所需要的.它需要一个键和一个alist作为其参数,并在以下方面返回alist中键的第一个关联equal:
ELISP> (setq foo '(("a" . 1) ("b" . 2) ("c" . 3)))
(("a" . 1)
("b" . 2)
("c" . 3))
ELISP> (assoc "a" foo)
("a" . 1)
ELISP> (cdr (assoc "a" foo))
1
Run Code Online (Sandbox Code Playgroud)
该assoc-string函数类似于assoc函数,但特定于其键为字符串的关联列表.除了键和alist之外,它还可以采用另一个可选参数,使得键比较不区分大小写:
ELISP> (assoc-string "a" foo)
("a" . 1)
ELISP> (assoc-string "A" foo)
nil
ELISP> (assoc-string "A" foo t)
("a" . 1)
Run Code Online (Sandbox Code Playgroud)
有关关联列表相关函数的完整列表,请参阅GNU Emacs Lisp参考手册.
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |