代码之家  ›  专栏  ›  技术社区  ›  Pedro Alves

Python-For循环-仅当上述行相等时才打印

  •  -2
  • Pedro Alves  · 技术社区  · 6 年前

    我有以下代码:

    characters = ['a', 'b', 'b', 'c','d', 'b']
    
    for i in characters:
        if i[0] == i[-1]:
            print(i)
    

    基本上我只想从上面的行中提取相等的字符。例如,在我的例子中,我只想从1和2位置提取b。

    我该怎么做?

    谢谢!

    5 回复  |  直到 6 年前
        1
  •  0
  •   Nihal Saranga    6 年前

    要从仅与列表中最后一个字符匹配的列表中提取字符,可以执行以下操作:

    characters = ['a', 'b', 'b', 'c','d', 'b']
    
    for i in range(0, len(characters) - 1):
        if characters[i] == characters[-1]:
            print(characters[i])
    

    i

        2
  •  1
  •   Nihal Saranga    6 年前
    a = ['a', 'b', 'b', 'c', 'd', 'b']
    b = ['a', 'b', 'b', 'c', 'd', 'b', 'd']
    
    import collections
    
    print([item for item, count in collections.Counter(a).items() if count > 1])
    print([item for item, count in collections.Counter(b).items() if count > 1])
    

    输出

    ['b']
    ['b', 'd']
    
        3
  •  1
  •   Tom Wojcik    6 年前

    而不是在同一个列表上重复多次。

    characters = ['a', 'b', 'b', 'c','d', 'b']
    last_char = None
    
    output = []
    
    for char in characters:
        if char == last_char:
            output.append(char)
        last_char = char
    
    print(output)
    
        4
  •  0
  •   E.Serra    6 年前
    equal = [a for a in characters[0:-1] if a == characters[-1]]
    

    equal = [a for a in characters if a == characters[-1]]
    
        5
  •  0
  •   Roshan Bagdiya    6 年前

    代码中的小修改

    characters = ['a', 'b', 'b', 'c','d', 'b']
    ch=  (characters[-1])
    for i in characters:
        if i == ch:
            print(i