首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在列表理解中对单个列表执行多个循环

在列表理解中对单个列表执行多个循环
EN

Stack Overflow用户
提问于 2020-04-16 05:00:32
回答 1查看 21关注 0票数 0

我的数据看起来像这样

代码语言:javascript
运行
复制
[
    'GET ... \n GET ...',
    'POST ...',
    '<content>...</content>',
    'GET ...'
]

我想把这个列表变成这个

代码语言:javascript
运行
复制
[
    [ 'GET ...', 'GET...' ],
    [ 'POST ...' ],
    [ 'GET ...' ]
]

其中我过滤了所有非HTTP请求元素,并拆分了多行字符串行。

我是这样做的

代码语言:javascript
运行
复制
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)

它起作用了。但是,有没有办法将两种列表理解--一种用于拆分,另一种用于检查字符串--组合成一个?

EN

Stack Overflow用户

回答已采纳

发布于 2020-04-16 05:08:54

以下命令有什么问题吗:

代码语言:javascript
运行
复制
for string in strings:
    true_queries = [normalize_text(query) for for query in queries if not query.startswith('<')]

?或者,如果您希望<前面可能有一些空格,那么效率会稍微低一些,但可以处理这种情况:

代码语言:javascript
运行
复制
for string in strings:
    true_queries = [ true_query in (normalize_text(query) for query in queries) if not true_query.startswith('<') ]
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61238522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档