Ответ 1
In [67]: alist = ['foo','spam', 'bar']
In [70]: [prefix+elt for elt in alist for prefix in ('','ok.') ]
Out[70]: ['foo', 'ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']
Имея такой список:
['foo','spam','bar']
Возможно ли, используя понимание списка, получить этот список как результат?
['foo','ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']
In [67]: alist = ['foo','spam', 'bar']
In [70]: [prefix+elt for elt in alist for prefix in ('','ok.') ]
Out[70]: ['foo', 'ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']
Со списком понятий вы создаете новые списки, а не добавляете элементы в существующий список (что может иметь значение для действительно больших наборов данных)
Почему в любом случае это должно быть понимание списка? Просто потому, что python имеет их, не делает неправильной практикой кодирования использовать цикл for.