Python:从一个sou生成两个互斥数组

2024-09-28 15:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个内容来源,我把小麦从谷壳中分离出来。我想要一份谷壳的记录,这样可以目视检查。麻烦的是,小麦+谷壳的长度应该等于总含量长度,但事实并非如此。 代码如下:

for report_file in REPORT_FILES:
    with open(report_file, "r+") as filey:
        content_lines = filey.read().split("\n")

    lines = [x for x in content_lines if not any(header in x for header in REPORTS[report_type]["headers"])]    
    trash = [x for x in content_lines if not any(line in x for line in lines)]

此代码生成{lines}和{trash},但len(trash)为0。我还尝试了:

lines = [x for x in content_lines if not any (header in x for header in REPORTS[report_type]["headers"])]
trash = [x for x in content_lines if any(header in x for header in REPORTS[report_type]["headers"])]

但是len(行)+len(垃圾)大于len(内容行)


Tags: inreportforleniftypenotany
2条回答

对于trash,您只需获取content_lines中不在lines中的所有内容。代码:

trash [x for x in content_lines if x not in lines]

没有必要把事情弄得比这更复杂

提示:您可以替换

content_lines = filey.read().split("\n")

content_lines = filey.readlines()

答:代码学徒的答案和我在问题陈述中的第二个解决方案都是正确的。验证方法不正确: 在bash中使用wc -l时,它计算“\n”字符,但不计算“\r”。我正在引用的报告在某些行的结尾处带有一个尾随“\r”而不总是一个“\r\n”

相关问题 更多 >