【发布时间】:2013-10-19 02:02:52
【问题描述】:
我将编译一个循环字符串列表(事务 ID)。 我很困惑。我研究了正确的方法,觉得这段代码应该可以工作。 但是,我在第二个街区做错了什么。 第一个块正确编译了我想要的字符串列表。
我无法让第二个块工作。如果我简化,我可以打印列表中的每个值 通过使用
for idx, val in enumerate(tidarray): print val
似乎我现在应该能够使用该值在每一行中搜索该字符串, 然后打印该行(实际上我将它与另一个搜索词结合使用 减少行读取的数量,但这是我进一步磨练之前的基本测试。
def main():
pass
samlfile= "2013-08-18 06:24:27,410 tid:5af193fdc DEBUG org.sourceid.saml20.domain.AttributeMapping] Source attributes:{SAML_AUTHN_CTX=urn:oasis:names:tc:SAML:2.0:ac:classes"
tidarray = []
for line in samlfile:
if "tid:" in line:
str=line
tid = re.search(r'(tid:.*?)(?= )', str)
if tid.group() not in tidarray:
tidarray.append(tid.group())
for line in samlfile:
for idx, val in enumerate(tidarray):
if val in line:
print line
有人可以建议对第二个代码块进行更正吗?我认识到两次读取文件并不是最优雅的解决方案......我在这里的主要目标是学习如何枚举列表并在后续代码中使用每个值。
【问题讨论】:
-
请注意,我已经编辑了您的帖子,使其看起来更漂亮(现在是第三次)。您可以编辑您的帖子以查看格式如何正确完成。如果您提供一些输入样本而不是
open()行,这样其他人就知道您的数据是什么样子了,那就太好了。 -
感谢 nemo 的帮助...我似乎无法更早地将其格式化。
标签: python-2.7 if-statement for-loop enumerate