You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历list_of_items并保存替换后的text文本?

问题与解决方案

问题描述

我想要遍历list_of_items列表,对text中的每个列表项执行替换操作:在项的前面添加一个空格,写了这段代码但不知道怎么保存所有修改后的最终text:

for item in list_of_items:
    text.replace(item, ' ' + item)

相关变量定义:

list_of_items = ['PN', 'DESCRIPTION', 'LOCATION', 'CONDITION',
             'RECEIVER#', 'UOM', 'EXP DATE', 'PO', 'CERT SOURCE',
             'REC.DATE', 'MFG', 'BATCH#', 'DOM', 'REMARK', 'LOT#',
             'TAGGED BY', 'Qty', 'NOTES'] 

text = '''
PN: tst SN: 123123
DESCRIPTION: PART
LOCATION: 111 CONDITION: FN
RECEIVER#: 9UOM: EA
EXP DATE: 13.04.2022 PO: P101
CERT SOURCE: wef
REC.DATE:18.04.2022 MFG: efwfe
BATCH# : 1 DOM: 13.04.2022
REMARK: LOT# : 1
TAGGED BY: 
'''

原因分析

Python中的字符串是不可变对象,str.replace()方法不会直接修改原字符串,而是返回一个包含修改结果的新字符串。原代码仅调用了replace但未将返回值重新赋值给text,导致每次修改的结果都丢失了。

修正后的代码

只需在循环中将replace的返回值重新赋值给text,即可累计所有修改:

list_of_items = ['PN', 'DESCRIPTION', 'LOCATION', 'CONDITION',
             'RECEIVER#', 'UOM', 'EXP DATE', 'PO', 'CERT SOURCE',
             'REC.DATE', 'MFG', 'BATCH#', 'DOM', 'REMARK', 'LOT#',
             'TAGGED BY', 'Qty', 'NOTES'] 

text = '''
PN: tst SN: 123123
DESCRIPTION: PART
LOCATION: 111 CONDITION: FN
RECEIVER#: 9UOM: EA
EXP DATE: 13.04.2022 PO: P101
CERT SOURCE: wef
REC.DATE:18.04.2022 MFG: efwfe
BATCH# : 1 DOM: 13.04.2022
REMARK: LOT# : 1
TAGGED BY: 
'''

# 遍历列表并累计修改结果
for item in list_of_items:
    text = text.replace(item, ' ' + item)

# 查看最终结果
print(text)

最终效果

运行后text的内容会变为:

PN: tst SN: 123123
 DESCRIPTION: PART
 LOCATION: 111  CONDITION: FN
 RECEIVER#: 9 UOM: EA
 EXP DATE: 13.04.2022  PO: P101
 CERT SOURCE: wef
 REC.DATE:18.04.2022  MFG: efwfe
 BATCH# : 1  DOM: 13.04.2022
 REMARK:  LOT# : 1
 TAGGED BY: 

内容的提问来源于stack exchange,提问作者user11419808

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:22:34