我有一个字符串,它有几千个字符长,并包含大约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
。
修改列表,而你遍历它是一个坏主意,因为它往往会抛弃你在名单中的位置。另外,'remove'是从列表中删除元素的非常缓慢的方式,因为它必须再次定位元素。建立一个新的列表,而不是从现有的列表中删除。 – user2357112
另外,你不应该在列表中测试_every_行,看看它是否是最后一行,只是在循环之外做这些事情。你有'.join'回调。它应该是'separator_string.join(list_of_strings)' –
@ PM2Ring,你是对的。感谢您指出了这一点。 –