我的数据看起来像这样
[
'GET ... \n GET ...',
'POST ...',
'<content>...</content>',
'GET ...'
]
我想把这个列表变成这个
[
[ 'GET ...', 'GET...' ],
[ 'POST ...' ],
[ 'GET ...' ]
]
其中我过滤了所有非HTTP请求元素,并拆分了多行字符串行。
我是这样做的
strings = [
'GET ... \r\n GET...',
'POST ...' ,
'GET ...'
]
def normalize_text(txt, to_lower=True):
if txt is not None:
strp = txt.strip()
if to_lower:
return strp.lower()
return strp
return txt
for string in strings:
queries = [normalize_text(query) for query in string.splitlines()]
true_queries = [query for query in queries if not query.startswith('<')]
print(true_queries)
它起作用了。但是,有没有办法将两种列表理解--一种用于拆分,另一种用于检查字符串--组合成一个?
发布于 2020-04-16 05:08:54
以下命令有什么问题吗:
for string in strings:
true_queries = [normalize_text(query) for for query in queries if not query.startswith('<')]
?或者,如果您希望<
前面可能有一些空格,那么效率会稍微低一些,但可以处理这种情况:
for string in strings:
true_queries = [ true_query in (normalize_text(query) for query in queries) if not true_query.startswith('<') ]
https://stackoverflow.com/questions/61238522
复制相似问题