gpt4 book ai didi

list - 在 Lisp 中映射两个字符串列表(以简短的方式)?

转载 作者:行者123 更新时间:2023-12-04 22:54:21 24 4
gpt4 key购买 nike

Lisp 初学者在这里。

我有两个长度相同的这种形式的字符串列表:

  keys = ("abc" "def" "gh" ...)
values = ("qwe" "opr" "kmn" ...)

我需要从这些列表中构建散列表或关联列表(无论哪个易于构建且可以快速获取值)。由于它们的配对,它们处于正确的索引中。

我知道我可以通过迭代来映射它们。但我想采用更具声明性的方式,如果可以的话,我正在寻找一种干净的方式。

最佳答案

有一个名为 PAIRLIS 的专用函数这正是您想要构建关联列表的功能:

USER> (pairlis '("abc" "def" "gh")
'("qwe" "opr" "kmn"))
(("gh" . "kmn") ("def" . "opr") ("abc" . "qwe"))

请注意,顺序是相反的,但这取决于实现。在这里订单无关紧要,因为您的 key 是唯一的。

然后,您可以使用流行的 alexandria库来构建一个哈希表:
USER> (alexandria:alist-hash-table * :test #'equalp)
#<HASH-TABLE :TEST EQUALP :COUNT 3 {101C66ECA3}>

在这里,我使用带有测试的哈希表 equalp因为你的 key 是字符串。

注意。 * 符号指的是 REPL 中的最后一个主值

关于list - 在 Lisp 中映射两个字符串列表(以简短的方式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58978598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com