在elisp中压缩两个不同长度的列表

RNA*_*RNA 6 elisp

我有两个清单:

(setq x (list "a" "b" "c"))
(setq y (list "1" "2" "3" "4"))
Run Code Online (Sandbox Code Playgroud)

如何创建一个(("a" . "1") ("b" . "2") ("c" . "3") ("a" . "4"))使用较短列表回收的利弊单元列表?

abo*_*abo 6

这是我的看法:

(require 'cl-lib)
(cl-mapcar #'list (setcdr (last x) x) y)
Run Code Online (Sandbox Code Playgroud)

我会添加一个检查,看看哪个更大,但这会破坏简洁:).