Everything I am going to say here is much better explained in section 82 of the pgfmanual. loop over item by itself is, despite what its name suggests, not a loop, but "just" a code. However, due to the .list key, it becomes a loop. To see that more clearly, consider the MWE
\documentclass{article}
\usepackage{pgfkeys,pgffor} % .list requires pgffor
\begin{document}
\pgfkeys{/student/.cd, % switch to student
hello/.code={hello #1!}}
\pgfkeys{/student/hello=world}
\pgfkeys{/student/hello/.list={world,duck,koala,marmot}}
\end{document}

Here, hello is just a simple code that prints hello <arg>!, where arg is the argument. (If you have a definition inside a definition, you need to increase the number of #, as explained e.g here. This is the reason why there are two # in the definition of \ifdate.)
What is important now is that the .list key makes the code loop over the argument, as can be seen in (the admittedly stupid example) \pgfkeys{/student/hello/.list={world,duck,koala,marmot}}. Note also that .list requires the pgffor library (on top of pgfkeys, which would be sufficient to make the first part of the MWE work).
.listthingy is explained on page 890 of the pgfmanual. The whole section 82 is a great reference for the pgfkeys, which are at work here. As far as I understand things, the.listkey makes the key before loop over whatever is after the=sign (\avationsin this case, which also gets expanded because of the.expandedkey). BTW, as far as I understand things, thisloop over itemby itself is, despite what its name suggests, not a loop, but "just" a code. However, due to the.listkey, it becomes a loop – Sep 27 '18 at 19:46loop over item/.code=blahsuggests that it is a user-defined macro. There should not be documentation. – Symbol 1 Sep 27 '18 at 21:02