【问题标题】:Finding multiple characters in a string: python3 [duplicate]在字符串中查找多个字符:python3 [重复]
【发布时间】:2018-12-09 21:43:52
【问题描述】:

我想在字符串 'akacja' 中找到字母 'a' 的所有索引。然而,python 似乎总是只返回它找到的第一个索引。 有什么解决办法吗? 感谢您的帮助。

【问题讨论】:

  • 欢迎来到 Stack Overflow!请阅读tour,或者浏览Help center。当询问您无法开始工作的代码时,请在您的问题中包含该代码,以便我们告诉您哪里出错了。如果完整代码太长,压缩成minimal reproducible example

标签: python python-3.x string character


【解决方案1】:

您可以使用列表推导,因为 str.index()str.find() 只会返回第一个索引:

s = 'akacja'

indexes = [i for i, c in enumerate(s) if c == 'a']
print(indexes)
# OUTPUT
# [0, 2, 5]

【讨论】:

    【解决方案2】:

    你可以这样做……

    indexes = [i for i,c in enumerate('akacja') if c == 'a']
    

    上面的行使用列表理解,它是以下的简写:

    indexes = []
    for i,c in enumerated('akacja'):
        if c == 'a':
            indexes.append(i)
    

    你也可以像这样使用正则表达式:

    import re
    indexes = [f.start() for f in re.finditer('a', 'akacja')]  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2019-11-17
      相关资源
      最近更新 更多