如何通过 foreach 循环检查更多元素?

如何通过 foreach 循环检查更多元素?

我想检查 foreach 循环中是否还有更多元素。该怎么做?

这是一个 for 循环的示例:

\foreach \p/\q in {a/{1,2,3}, b/{4,5,6}}
    \foreach \r in \q { (\r) }

编辑#1

我想要实现的编程语言代码示例如下:

a = [3,4,5,6]
for i, val in enumerate(a):
    print(val, sep='', end='')
    if i < len(a)-1:
        print(',', sep='', end='')

希望这有助于澄清。

答案1

您可以使用以下count功能\foreach

\documentclass{article}

\usepackage{pgffor}

\begin{document}

\foreach \i [count=\xi] in {a,b,c}
 {
  \ifnum\xi>1 and \fi \i
 }

\foreach \i [count=\xi] in {a}
 {
  \ifnum\xi>1 and \fi \i
 }

\end{document}

在此处输入图片描述

答案2

你可以使用狡猾的 (La)TeX 技巧

在此处输入图片描述

\documentclass{article}

\usepackage{etoolbox}

\newcommand{\printlist}[2][,]{%
  \def\itemdelim{\def\itemdelim{#1}}% Item delimiter delayed by one cycle
  \renewcommand*{\do}[1]{\itemdelim##1}% How each item is processed
  \docsvlist{#2}}% Process CSV list

\begin{document}

\printlist{a,b,c}

\printlist[ and ]{a,b,c}

\printlist{}

\printlist{a}

\end{document}

方法是始终打印分隔符,但第一个只是对分隔符的重新定义,实际上什么都没有打印。

相关内容