gpt4 book ai didi

list - 根据某些元素对列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:32 25 4
gpt4 key购买 nike

我是 Lisp 新手,想学习 Lisp 编程。我想对从文本文件中读取的一些列表进行排序,如下所示:

(a 120 135 124 124)
(b 120 135 124 124)
(c 120 135 124 124)

根据第一个或第二个或第三个整数元素对它们进行排序的最佳方法是什么?

我有以下想法:

  1. 全部阅读并放入列表中
  2. 遍历容器列表并将列表的值与冒泡排序中的下一个进行比较。

是否有更合适的数据结构来实现这一点,也许像 Java 中的集合,它采用包含排序逻辑和自动填充排序的可比较对象?

非常感谢。

最佳答案

标准的 sort 函数接受一个 :key 参数,该参数可用于从对象中提取值以用作排序键。对于您的示例,如果您将文件中的每个列表都放在名为 objects 的列表中,则以下内容将按第一个整数元素破坏性地对 objects 进行排序并返回排序后的列表:

(sort objects #'< :key #'second)

参见 http://l1sp.org/cl/sort Common Lisp 的 sort 函数的精确规范。

关于list - 根据某些元素对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4606304/

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