I would like to add n
specific elements after each element in a list using only list comprehension.
Example:
l = [A, B, C, D, E]
element = ''
for n = 1
should result in
l = [A, '', B, '', C, '', D, '', E, '']
or n = 2
should result in
l = [A, '', '', B, '', '', C, '', '', D, '', '', E, '', '']
It is pretty straight-forward without the List Comprehension.
If you want to use List Comprehension you can do something like:
l = ['A','B','C','D','E']
[(x,'') for x in l]
#[('A', ''), ('B', ''), ('C', ''), ('D', ''), ('E', '')]
Flatten this nested list by:
[item for sublist in ((x,'') for x in l) for item in sublist]
#['A', '', 'B', '', 'C', '', 'D', '', 'E', '']
Similarly for two blank spaces:
[item for sublist in ((x,'','') for x in l) for item in sublist]
#['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '', 'E', '', '']
Edit:
n=1
[item for sublist in ([x] + ['']*n for x in l) for item in sublist]
#['A', '', 'B', '', 'C', '', 'D', '', 'E', '']
n=2
#['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '', 'E', '', '']