代码之家  ›  专栏  ›  技术社区  ›  Karn Kumar

将set()结果输出值打印成换行符

  •  1
  • Karn Kumar  · 技术社区  · 6 年前

    如何将python集的输出值打印到换行符中,而不是打印到单行列表中。

    下面是我用来获取两个文件之间公共值的代码。

    def print_common_members(a, b):
            """
            Given two sets, print the intersection, or "No common elements".
            """
            print((a & b) or "No common elements")
    
        with open('file1.txt') as file1, open('file2.txt') as file2:
            dataset1 = set(file1)
            dataset2 = set(file2)
            print_common_members(dataset1, dataset2)
    

    下面是我用来获取数据的文件。。

    teraform101
    azure233
    teraform221
    teraform223
    teraform224
    

    文件2.txt

    teraform101
    azure109
    teraform223
    teraform226
    teraform225
    azure233
    

    结果:

    { 'teraform101\n', 'azure233\n', 'teraform223\n' }
    

    teraform101
    azure233
    teraform223
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   salparadise    6 年前

    使用 join

    print('\n'.join(a & b) or "No common elements")

    此外,如前所述,如果每个字符中都有换行符,则可以对空字符串进行联接,以获得相同的结果:

    print(''.join(a & b) or "No common elements")

    print('\n'.join(s.strip('\n') for s in a & b) or "No common element")

    此外,所有这些都有效,因为join在没有可循环的内容时返回空字符串:

    In [60]: '\n'.join(set() & set())
    Out[60]: ''
    

    False 在python中。

        2
  •  1
  •   Community Heathro    4 年前

    set intersection

    def print_common_members(a, b):
        """
        Given two sets, print the intersection, or "No common elements".
        """
        inter = a.intersection(b)
        if inter:   # empty sets are Falsy, non empty sets are Truthy 
            for elt in inter:
                print(elt)
        else:
            print("No common elements")
        
    a = {1, 2, 3}
    b = {2, 3, 4}
    c = {7, 8, 9}
    print_common_members(a, b)
    print()
    print_common_members(a, c)
    

    输出:

    2
    3
    
    No common elements