Home > Software design >  How can I replace an item in a list with a string that has a space in it?
How can I replace an item in a list with a string that has a space in it?

Time:10-28

I am trying to simply replace a list item with another item, except the new item has a space in it. When it replaces, it creates two list items when I only want one. How can I make it just one item in the list please?

Here is a minimal reproducible example:

import re

cont = "BECMG 2622/2700 32010KT CAVOK"
actual = "BECMG 2622"
sorted_fm_becmg = ['BECMG 262200', '272100']
line_to_print = 'BECMG 262200'

becmg = re.search(r'%s[/]\d\d\d\d' % re.escape(actual), cont).group()
new_becmg = "BECMG "   becmg[-4:]   "00" # i need to make this one list item when it replaces 'line_to_print'
sorted_fm_becmg = (' '.join(sorted_fm_becmg).replace(line_to_print, new_becmg)).split()

print(sorted_fm_becmg)

I need sorted_fm_becmg to look like this : ['BECMG 270000', '272100'].

I've tried making new_becmg a list item, I have tried removing the space in the string in new_becmg but I need the list item to have a space in it. It is probably something simple but I can't get it. Thank you.

CodePudding user response:

You can iterate through sorted_fm_becmg to replace each string individually instead:

sorted_fm_becmg = [b.replace(line_to_print, new_becmg) for b in sorted_fm_becmg]
  • Related