The first append version will more often be in a loop. It's unlikely that someone will know enough to use comprehensions but not enough to still use append.
To generate a list/dictionary/geneator from an input iterable, you use a comprehension of the appropriate type.
To iterate through it without doing one of those things, you use a for loop.
In “one obvious way to do it”, “it” refers to a concrete task; the same is not necessarily intended to be true of arbitrarily broad generalizations of classes of tasks.
For example, you'll sometimes see people do bad stuff like this:
When they should be doing this: Or just this: