在不破坏括号格式的情况下删除列表中的最后一个元素(括号)

用户名

我正在使用此代码来确保将列表放在一起,以便将其与我正在编写的另一个函数一起使用。

#lang racket
(define path_from_start null)
(define path_stack null)
(define input1 '(0 0))
(define input2 '(1 2))
(define input3 '(3 1))

(define (test xy)
  (set! path_from_start (append path_from_start (list xy)))
  (display "path from start:") (display path_from_start)
  (display "\n")
  (set! path_stack (list path_from_start path_stack))
  (display "path_stack")(display path_stack)
  (display "\n")
  ;(set! path_stack (cdr path_stack))
  ;(display path_stack)
  ;(display "\n")
)

(test input1)
(test input2)
(test input3)

但是我得到以下输出:

path from start:((0 0))
path_stack(((0 0)) ())
path from start:((0 0) (1 2))
path_stack(((0 0) (1 2)) (((0 0)) ()))
path from start:((0 0) (1 2) (3 1))
path_stack(((0 0) (1 2) (3 1)) (((0 0) (1 2)) (((0 0)) ())))
1st item on path_stack: '((0 0) (1 2) (3 1))

我不希望在path_stack的末尾有空列表。它不会显示在path_from_start中。这可能是因为我形成path_stack的方式。但我想保留我现在使用的方括号格式。我可以将path_stack初始化为另一个变量吗?

我查找了其他方法,但它们都破坏了括号格式。我是否应该在第一步中使用其中一种方法?只需在列表中添加其他1个元素即可将其压缩在萌芽状态,这样我就可以轻松地对其进行修改?

谢谢。

奥斯卡·洛佩兹(Oscar Lopez)

试试第二次set!使用,list*而不是list

(set! path_stack (list* path_from_start path_stack))

结果是,我相信这可以解决括号中的问题-问题中的示例输出似乎不正确:

path from start: ((0 0))
path_stack:      (((0 0)))
path from start: ((0 0) (1 2))
path_stack:      (((0 0) (1 2)) ((0 0)))
path from start: ((0 0) (1 2) (3 1))
path_stack:      (((0 0) (1 2) (3 1)) ((0 0) (1 2)) ((0 0)))

现在,我们可以追溯路径中的每个步骤,如下所示:

(first path_stack)
=> '((0 0) (1 2) (3 1))
(second path_stack)
=> '((0 0) (1 2))
(third path_stack)
=> '((0 0))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除可选的最后一个括号

如何在不越界的情况下遍历向量的最后一个元素?

(Python)在没有括号的情况下将列表添加到另一个列表

如何在没有剪切的情况下从列表中删除第一个匹配元素

在不删除数组的情况下获取数组最后一个元素的最佳方法是什么?

如何在不插入任何数据的情况下获取php中的最后一个插入ID?

如何删除括号中的最后一个文本(简洁明了)

Javascript删除字符串中的最后一个方括号[]

删除列表的最后一个元素

我的第一个 div 上大约有 20 像素的空白区域。如何在不破坏页面布局的情况下删除它?

如何在不保存迭代的最后一个值的情况下替换Python嵌套列表中的值

从列表列表的最后两个列表中删除最后一个元素

您可以在不迭代Q中的列表的情况下将一个列表的元素追加到另一个列表的元素吗?

如何在不写入Java中另一个文件的情况下删除文件的一行

在不删除最后一个值的情况下使用popd

如何在不删除行的情况下保留熊猫的最后一个值

如何在不创建新元素的情况下更改列表中的n个连续元素?

在不使用列表的情况下获取最后一个字母值

匹配最后一个括号

如何在不破坏列表的情况下修改链接列表元素的值

在不丢失元素名称的情况下查找列表中的唯一元素

在不使用python中的索引函数的情况下获取列表中的下一个元素

如何在不签出的情况下获取另一个分支中的文件列表?

如何在不结帐的情况下获取另一个分支中的文件列表

如何在不丢失格式的情况下使用POI将一个.docx中的某些内容复制到另一个.docx中?

在不使用shift()方法的情况下删除数组中的第一个元素

在没有第一个和最后一个元素的情况下循环字典

如何在不破坏参照完整性 SQL Server 的情况下将不同 tbl 中的地址收集到一个

删除第一个和最后一个括号