如何用包含空格的字符串替换列表中的项目?

Posted

技术标签:

【中文标题】如何用包含空格的字符串替换列表中的项目?【英文标题】:How can I replace an item in a list with a string that has a space in it? 【发布时间】:2021-12-12 11:18:35 【问题描述】:

我试图简单地用另一个项目替换一个列表项,但新项目中有一个空格。当它替换时,它会在我只想要一个时创建两个列表项。请问如何才能让它只在列表中的一项?

这是一个最小的可重现示例:

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)

我需要sorted_fm_becmg 看起来像这样:['BECMG 270000', '272100']

我尝试将new_becmg 设为列表项,我尝试删除new_becmg 中字符串中的空格,但我需要列表项中有空格。 这可能很简单,但我无法理解。谢谢。

【问题讨论】:

【参考方案1】:

您可以遍历sorted_fm_becmg 来单独替换每个字符串:

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

【讨论】:

以上是关于如何用包含空格的字符串替换列表中的项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何用空格匹配、计数和替换字符串,但它们不是另一个字母字符串的子字符串?

如何用 Python 列表中的内容替换字符串中找到的单词

如何用“-”替换多余的空格(不是空格)?

如何用批处理命令删除一批文件中的空格字符.

如何用元组列表替换列表中正则表达式匹配的模式?

如何用同一数据框中其他列的实际列值替换一列中的字符串值?