listofitems is a powerful list parsing package. Your example is the simplest of its capability:
\documentclass{article} \usepackage{listofitems} \begin{document} \def\pleaseHelp{I, am, confused} \readlist*\mylist{\pleaseHelp}% star option removes surrounding whitespace Individual items:\\ ``\mylist[1]'' and\\ ``\mylist[2]'' and\\ ``\mylist[3]'' Loop over list: \foreachitem\x\in\mylist[]{\ifnum\xcnt=1\else\ and \fi``\x''} \end{document}

Additionally, you can change the the parsing separator with the following prior to the \readlist:
\setsepchar{;}
You can parse based on several separators simultaneously with an or (||) separated specification of separators:
\setsepchar{,||.||;||:} \readlist*\Z{To be, or not to be; that is the question.}
will yield a list containing \Z[1] as To be, \Z[2] as or not to be, \Z[3] as that is the question.
You can do nested parsing with a slash (/) separated list of separators, for example:
\setsepchar{*/,} \readlist*\Z{this is, a test* of multi-level, parsing}
Then, \Z[1,1] contains this is, \Z[1,2] contains a test, \Z[2,1] contains of multi-level, and \Z[2,2] contains parsing.
When I use the word "contains", I mean "expands to the actual tokens, via two expansions" so that, in the above example, \detokenize\expandafter\expandafter\expandafter{\Z[2,2]} will yield parsing.