0

How do I split strings in a list without resulting in a 2-D list?

list1:['Ben&Jerry', 'Julia', 'Sally&Don', 'Tom', 'Tracy&Jim']

to output:

['Ben','Jerry','Julia','Sally', 'Don','Tom','Tracy','Jim']

using

flat_list=[s.split('&') if "&" in s else s for s in list1 ]

will give me a 2-D list.

Ch3steR
  • 20,090
  • 4
  • 28
  • 58

2 Answers2

6

Lazy way:

flat_list = '&'.join(list1).split('&')
Kelly Bundy
  • 23,480
  • 7
  • 29
  • 65
1

This should work

[i for j in [i.split('&') for i in list1] for i in j]
  • 3
    See the comment by @Ch3steR for evidence that nesting a list comprehension in another is not necessary. – Chris Jun 06 '22 at 05:20