大致了解并练习了本章节的主要语法与用法,打算尝试理解eliza模块。我的思路,直接从头阅读源代码。
但以下代码,尝试简化并拆分。但还是无法理解。
代码如下:
self.keys = list(
map( lambda x: re.compile(x[0], re.IGNORECASE), gPats))
list函数中嵌套着map函数,其中函数为lambda表达式,参数x,匹配规则为参数x + 集合原子[0]。re.IGNORECASE我查了一下,这个标志允许正则表达式与给定的字符串进行不区分大小写的匹配。
gPats为可迭代对象,以下是gPats具体的值。
gPats = [r'I need (.*)',
[ "Why do you need %1?",
"Would it really help you to get %1?",
"Are you sure you need %1?"]],
老师这一整个嵌套的列套是一个整体的匹配规则吗?
还是说,在逗号分隔的地方为一个匹配规则。我也尝试把此规则放进regex101,但还是不能理解,希望老师给点线索。
大致了解并练习了本章节的主要语法与用法,打算尝试理解eliza模块。我的思路,直接从头阅读源代码。
但以下代码,尝试简化并拆分。但还是无法理解。
代码如下:
list函数中嵌套着map函数,其中函数为lambda表达式,参数
x,匹配规则为参数x + 集合原子[0]。re.IGNORECASE我查了一下,这个标志允许正则表达式与给定的字符串进行不区分大小写的匹配。gPats为可迭代对象,以下是gPats具体的值。
老师这一整个嵌套的列套是一个整体的匹配规则吗?
还是说,在逗号分隔的地方为一个匹配规则。我也尝试把此规则放进regex101,但还是不能理解,希望老师给点线索。