吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 667|回复: 4
收起左侧

[已解决] 请问这个列表推导式如何理解

[复制链接]
wtujcf123 发表于 2023-4-28 12:41
本帖最后由 wtujcf123 于 2023-5-19 19:03 编辑

[Python] 纯文本查看 复制代码
import re

paths = ['/api/users/add/',
         '/api/users/edit/1',
         '/api/users/',
         '/api/account/view/1',
         '/api/account/',
         '/not/a/valid/path']
l = ['/api/users/*', '/api/account/*']
patterns = [re.compile(re.sub("\*$", ".*", s)) for s in l]
a = [path for path in paths if any(p.match(path) for p in patterns)]
print(a)


请问,各位老师,上面代码中的这个列表推导式如何理解。
[Python] 纯文本查看 复制代码
 [path for path in paths if any(p.match(path) for p in patterns)]


我按正常的方式展开,得出的是错误:TypeError: 're.Match' object is not iterable
[Python] 纯文本查看 复制代码
for path in paths:
    for p in patterns:
        if any(p.match(path)):
            print(path)


如果将判断放在第二个循环外面,明显也是错误的。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
saszznz 发表于 2023-4-28 16:38
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| wtujcf123 发表于 2023-4-28 13:26
本帖最后由 wtujcf123 于 2023-4-28 13:27 编辑
PEKING1 发表于 2023-4-28 12:54
[md][mw_shl_code=python,true]这段代码报错的原因可能是 `any(p.match(path))` 这个表达式。`p.match(path ...

谢谢了,那这个any()是无用的函数吗??为什么在列表推导式中却能正常运行呢?
无闻无问 发表于 2023-4-28 16:10
 楼主| wtujcf123 发表于 2023-4-28 16:54
saszznz 发表于 2023-4-28 16:38
[mw_shl_code=python,true]import re

# 路径源

谢谢老师。讲的非常清楚,辛苦了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表