Разбей свою проблему. Вы никогда не сможете увидеть, как решить всю проблему за один раз, а в Python никогда не было простых встроенных решений для целых проблем. Выясните, каковы основные части вашей проблемы, и часто есть простые прямые решения для каждой части. Затем объедините решения. Кроме того, не ожидайте, что вы можете взмахнуть волшебной ключевой фразой, такой как «понимание списка», для устранения проблемы. Выясните, что нужно сделать вашему решению, а затем подумайте, может ли это сделать понимание списков.
У вас есть строка '1,2,3'. Вам нужно разделить это на список из нескольких строк, содержащий биты исходной строки, разделенные запятыми:
>>> help(str.split)
Help on method_descriptor:
split(...)
S.split([sep [,maxsplit]]) -> list of strings
Return a list of the words in the string S, using sep as the
delimiter string. If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are removed
from the result.
>>> '1,2,3'.split(',')
['1', '2', '3']
>>> '3'.split(',')
['3']
Теперь у вас есть список строк, и вы хотите разделить каждую из них на список, как указано выше:
>>> [s.split(',') for s in ['1','2','3','22','33']]
[['1'], ['2'], ['3'], ['22'], ['33']]
Теперь у вас есть список списков. Вы хотите один список, содержащий элементы каждого из списков в вашем списке списков. Операция «дай мне каждую вещь в каждом из списков в списке списков» довольно естественным образом сопоставляется с пониманием списка следующим образом:
>>> list_of_lists = [[1, 2, 3], ['a', 'b', 'c']]
>>> [thing for alist in list_of_lists for thing in alist]
[1, 2, 3, 'a', 'b', 'c']
Собираем все вместе:
>>> [bit for string in ['1','2','3','22','33'] for bit in string.split(',')]
['1', '2', '3', '22', '33']
Так вот как вы решаете это с помощью списочных представлений. В других ответах есть много других потенциальных решений, которые лучше по техническим причинам. Но если вы новичок в Python, изучать всю стандартную библиотеку (особенно мощные, но абстрактные вещи, такие как itertools) будет сложно, и вам не нужно это делать. Познакомиться с основами поможет вам в долгосрочной перспективе.