【发布时间】:2021-01-04 12:55:37
【问题描述】:
我正在解决关于hackerrank 的问题python 问题。我遇到了以下代码通过的问题:
import re
s = input()
ss = input()
o = list(re.finditer(r'(?=' + ss + ')', s))
if o:
for i in o:
print((i.start() , i.start() + len(ss) - 1))
else:
print((-1, -1))
但是下面的失败了:
import re
s = input()
ss = input()
o = re.finditer(r'(?=' + ss + ')', s)
if o:
for i in o:
print((i.start() , i.start() + len(ss) - 1))
else:
print((-1, -1))
您可以在第四行看到不同之处。我无法理解两者之间的区别。
【问题讨论】:
-
即使使用(IMO)相当松散的类型转换定义,这不是类型转换。
list(re.finditer(...))通过迭代相当于延迟函数调用的内容来构建一个全新的列表。您不会简单地将一个值视为另一种类型。