Home > front end >  How to delete an element every 8 elements in a list of strings on python?
How to delete an element every 8 elements in a list of strings on python?

Time:03-12

Suppose that you have a list of strings like the following one:

the_list = ['02:00', '  GBP', '', 'Construction Output (MoM) (Jan)', '1.1%', '0.5%', '2.0%', '',
            '02:00', '  GBP', '', 'U.K. Construction Output (YoY) (Jan)', '9.9%', '9.2%', '7.4%', '',
            '02:00', '  GBP', '', 'GDP (MoM)', '0.8%', '0.2%', '-0.2%', '',
            '02:00', '  GBP', '', 'GDP (YoY)', '10.0%', '9.3%', '6.0%', '',
            '02:00', '  GBP', '', 'Index of Services', '1.0%', ' ', '1.2%', '']

Which every 8 elements appears '', which is an empty string, and it happens to be the same empty string that exists next to the one called GBP

How could the_list variable be updated so that it deletes the '' element that appears every 8 elements in the array of strings?

CodePudding user response:

If I understood you correctly, you can use list-comprehension to filter out the values at specific index:

new_list = [word for idx, word in enumerate(the_list, 1) if idx % 8 != 0]
print(new_list)

Prints:

['02:00', '  GBP', '', 'Construction Output (MoM) (Jan)', '1.1%', '0.5%', '2.0%',
 '02:00', '  GBP', '', 'U.K. Construction Output (YoY) (Jan)', '9.9%', '9.2%', '7.4%',
 '02:00', '  GBP', '', 'GDP (MoM)', '0.8%', '0.2%', '-0.2%',
 '02:00', '  GBP', '', 'GDP (YoY)', '10.0%', '9.3%', '6.0%',
 '02:00', '  GBP', '', 'Index of Services', '1.0%', ' ', '1.2%']

CodePudding user response:

It's pretty simple:

del the_list[::8]  # or del the_list[7::8] if you try to delete the 7th element of each line

CodePudding user response:

just use this code to find the element that you want to delete in that case is empty string, in python is a false string so

for x in the_list:
    if not x:
        the_list.remove(x)
  • Related