Python3 返回字符串中某个给定字符的全部索引

    通常情况下,我们用find可以获取字符串中某个给定字符的索引,但是find方法只能给出字符串中第一次出现此字符的索引,如果我们需要获取给定字符的全部索引的话,目前想到了两个方法。

第一种.最笨的方法:去循环遍历字符串,找到相等的位置就记录下来·。

def find_all(data, s):
    r_list = []
    for r in range(len(data)):
        if data[r] == s:
            r_list.append(r)

    print(r_list)


data = 'afegjijefoeghhijowefnhudishujewnfuwifdnfe'
find_all(data, 'e')

结果如下:

第二种.使用lambda表达式,和第一种原理一样,但是简洁很多。

find_all = lambda data, s: [r for r in range(len(data)) if data[r] == s]

data = 'afegjijefoeghhijowefnhudishujewnfuwifdnfe'
r_list = find_all(data, 'e')
print(r_list)

结果如下:

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Python 的字符串索引来提取字符串字符索引从 0 开始,可以使用方括号 [] 来访问字符串的单个字符。 例如: ``` string = "hello world" print(string[0]) # 输出字符串一个字符 h print(string[5]) # 输出字符串第六个字符 w ``` 也可以使用切片来提取字符串的一段子字符串。 ``` string = "hello world" print(string[3:7]) # 输出字符串第4个到第7个字符 lo ``` ### 回答2: 在Python,可以使用索引运算符[]来提取字符串字符字符串一个字符序列,可以通过索引来访问其的每个字符索引从0开始,表示第一个字符,依次递增。可以使用正向索引从左向右访问字符,也可以使用反向索引从右向左访问字符。 例如,给定字符串s = "Hello World!",要提取字符"o",可以使用索引s[4],因为它是第5个字符。同样,要提取字符"!",可以使用索引s[-1],因为它是倒数第一个字符。 可以使用切片运算符[:]来提取字符串的子串。切片运算符可以提供一个起始索引一个结束索引,提取起始索引到结束索引(不包括结束索引)范围内的字符。 例如,给定字符串s = "Hello World!",要提取子串"Hello",可以使用切片s[0:5]或s[:5],起始索引为0,结束索引为5。同样,要提取子串"World",可以使用切片s[6:11]或s[6:],起始索引为6,结束索引默认为字符串的长度。 此外,Python还提供了一些字符串方法来提取和处理字符串字符,如split()方法和join()方法等。split()方法可以根据指定的分隔符将字符串拆分为一个列表,每个元素是一个字符或子串。join()方法可以将一个列表的元素连接成一个字符串,并使用指定的分隔符。 总之,使用索引和切片运算符,以及字符串方法,可以方便地提取字符串字符和子串,并进行相应的操作和处理。 ### 回答3: 使用Python提取字符串字符主要可以通过索引和切片两种方式来实现。 一、索引索引是用来表示字符串每个字符位置的数字,从0开始,可以正向(从左到右)或反向(从右到左)索引。 示例代码如下: ```python s = "Hello, world!" print(s[0]) # H print(s[-1]) # ! ``` 二、切片: 切片是在字符串截取一部分字符形成新的字符串。 示例代码如下: ```python s = "Hello, world!" print(s[0:5]) # Hello print(s[:5]) # Hello print(s[7:]) # world! print(s[7:-1]) # world ``` 通过指定的索引或切片范围来获取字符串字符或子串,可以根据实际需求灵活运用。 补充:如果字符串有多个匹配的字符需要提取,可以通过循环遍历字符串的方式,依次提取每个字符。 示例代码如下: ```python s = "Hello, world!" for ch in s: print(ch) ``` 以上就是使用Python提取字符串字符的基本方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值