查找字符串中出现的所有字符

2024-10-01 19:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个字符串中找到所有“|”的出现。

def findSectionOffsets(text):
    startingPos = 0
    endPos = len(text)

    for position in text.find("|",startingPos, endPos):
        print position
        endPos = position

但我有个错误:

    for position in text.find("|",startingPos, endPos):
TypeError: 'int' object is not iterable

Tags: 字符串textinforlendef错误position
3条回答

这里更容易使用正则表达式

import re

def findSectionOffsets(text):
    for m in re.finditer('\|', text):
        print m.start(0)

如果您想要索引字符串中所有出现的|字符,可以这样做

In [30]: import re

In [31]: str = "aaaaaa|bbbbbb|ccccc|dddd"

In [32]: [x.start() for x in re.finditer('\|', str)]
Out[32]: [6, 13, 19]

你也可以

In [33]: [x for x, v in enumerate(str) if v == '|']
Out[33]: [6, 13, 19]

功能:

def findOccurrences(s, ch):
    return [i for i, letter in enumerate(s) if letter == ch]


findOccurrences(yourString, '|')

将返回发生|yourString索引的列表。

相关问题 更多 >

    热门问题