代码之家  ›  专栏  ›  技术社区  ›  Patriots299

python-打印不在列表中的项目

  •  1
  • Patriots299  · 技术社区  · 6 年前

    我有一个记事本,其中包含以下内容:

    banana
    apple
    

    另外,我还有一个清单。说: example_list = ["banana", "apple", "orange"]

    我想打印示例列表中不在记事本中的值。所以,期望的结果是: orange

    这就是我所尝试的:

    file = open("picturesLog.txt", "r")
    fileLines = file.readlines()
    
    example_list = ["banana", "apple", "orange"]
    
    for item in example_list:
        if item in fileLines:
            pass
        else:
            print(item)
    

    正在打印:

    banana
    apple
    orange
    
    3 回复  |  直到 5 年前
        1
  •  1
  •   Ian    5 年前

    python读取每行的行尾字符。你得把它脱掉。类似的东西 fileLines = [x.strip() for x in file.readlines()] 应该有技巧。

    那就是 第一 更改为Make。它回答了最初的问题。

    这些评论将以改进算法的方式引起轰动。让他们燃烧。

        2
  •  1
  •   jamylak    6 年前
    >>> example_list = ["banana", "apple", "orange"]
    >>> with open("picturesLog.txt") as f: 
    ...   seen = set(map(str.strip, f))
    ...   for fruit in set(example_list) - seen:
    ...     print(fruit)
    ... 
    orange
    
        3
  •  1
  •   U13-Forward    6 年前

    str.join :

    l= set(map(str.rstrip,fileLines))
    print('\n'.join([i for i in list if i not in l]))