以下のようなフォーマットの index 付きの文字列を

`index文字'`space'`文字列'`space'`index文字'`space'`文字列'`space'`index文字'`space'`文字列'...

その index を区切り文字として分割して、結果を index 付きのリストとして変換したいんだけど
何かいい方法はないだろうか?とりあえず以下で実現はできた

(setq msg "1 ほげ 2 ふが 3 ほげほげ 4 ふがふが") ;; 元のインデックス付き文字列
(setq lst) ;; 出力用変数

(let ((i 0) idx)
(dolist (str (split-string msg " " t))
(if (= (% i 2) 0)
(setq idx str)
(setq lst (append lst (list (format "%s %s" idx str)))))
(setq i (1+ i))))
lst ;; -> ("1 ほげ" "2 ふが" "3 ほげほげ" "4 ふがふが")