我有一个长达数千个字符的字符串,包含大约100个\n
,在打印时将其分开。我正在删除包含某些子字符串和某些单个字符的任何行。
这部分内容已经完成,但我很好奇最好的 pythonic 这样做的方式是什么,并且,假设我选择的方法是合理的,如果临时列表有适当的命名约定。
active_config = active_config.split('\n')
for i, elem in enumerate(active_config):
# Delete entire line based off match
if "cmdStatus=" in elem or "<?xml" in elem:
active_config.remove(elem)
#Delete individual char based off match
elem = elem.replace("\r","")
# Delete last line if it is '*'
if active_config[-1] == "*":
del active_config[-1]
active_config = '\n'.join(active_config)
我已选择将字符串active_config
覆盖为列表,然后在删除某些元素后再次将其覆盖为字符串。
由于列表只用于删除几行和单个字符,并且从未在别处使用过,因此我应该将它称为特殊约定吗?也许称之为active_config_list
或temp_active_config
,或甚至只是temp
。
答案 0 :(得分:1)
一些列表推导也会这样做:
active_config = active_config.split('\n')
temp_list = [z for z in active_config if "cmdStatus=" in z or "<?xml" in z]
if temp_list[-1] == "*":
temp_list = "\n".join([x.replace("\r", "") for x in temp_list[:-1]])
#Do whatever you need to do with temp_list here