如何遍历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
相关产品推荐
相关产品推荐

