【问题标题】:Printing all string index locations of a specific character打印特定字符的所有字符串索引位置
【发布时间】:2018-08-30 10:40:55
【问题描述】:

如果我有string,例如s = '1084271054',并想打印所有为0的索引位置例如:

0 - 1, 7

解决这个问题的最基本方法是什么?

【问题讨论】:

标签: python


【解决方案1】:
[i for i, c in enumerate(s) if c=='0']
Out: [1, 7]

【讨论】:

    【解决方案2】:

    也许像

    >>> idx=[i for i in range(len(s)) if s[i]=='0']
    >>> idx
    [1, 7]
    

    编辑:

    >>> print ', '.join(str(i) for i in idx)
    1, 7
    

    【讨论】:

    • 这似乎是个好伙伴,有没有办法从数字中去掉那些讨厌的 [ ]?
    【解决方案3】:

    将字符串传递给枚举函数,该函数返回索引和字符的可迭代。然后你可以遍历它并检查字符是否为'0',如果是,则打印索引:

    for i,c in enumerate(s):
        if c == '0':
            print(i)
    

    哪个输出:

    1
    7
    

    如果您希望它们在一行中以逗号分隔,那么您可以将str.join 与生成器一起使用:

    print(', '.join(str(i) for i,c in enumerate(s) if c == '0'))
    

    给出:

    1, 7
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多