What is difference between a dataframe and a list in R? Which one should be used when?

For example, say I have to store 3 string elements like "a", "b", "c". Later for each of these, I need to append 3 more elements; for instance for "a" I have to add "a1", "a2", "a3". Later I have to use nested for loops to access these elements.

How do I know whether to use a dataframe or a list or some other data type, in which I could first store and then append (kind of each column)?

Edit
Report