Programuję zaowodowo w javie,js i php, teraz piszę sobie domowy tool w pythonie żeby poznać język, jednak natrafiłem na problem, i chciałbym poznać pythonic-way.
Otóż mam sobie listę
lista = ['Foo', 'Bar', 'Lorem\nIpsum\ndolor\nsit\namet']
i chciałbym, to co na w javie możnaby zrobić flatMap(word-> word.split("\n"))
, żeby dostać efekt
result = ['Foo', 'Bar', 'Lorem', 'Ipsum', 'dolor', 'sit', 'amet']
Tylko nie chcę robić map
+split
, a potem jakoś flatten'ować tą listę, bo czuję że nie tak się to robi w pythonie.
To co zrobiłem i nie działa:
Wiem że jest operator destruct w pythonie, więc możaby zrobić tak:
lista = ['Foo', 'Bar', *(tutaj splitowanie tego stringa)]
ale zrobienie tego dla dynamicznych danych juź mi nie działa:
return [*(_split(name)) for name in params.values()]
spodziewam się że destruct nie może być użyty w taki dynamiczny sposób? Nie wiem.
Jak to zrobić?
PS: Oczywiście googlowałem "python flat map" ale dostawałem albo jakieś zagnieżdżone pętle (to już folę map+split+flatten), albo jakieś overengineeringi ze ściągnaiem dodatokwych modułów.