Arcticfoxer 发表于 2020-6-14 14:49:52

rfind()和find()

<font color="red">[已解决]</font>rfind()和find()的差别
https://fishc.com.cn/thread-118030-1-1.html
(出处: 鱼C论坛)

看到原贴我明白了find和rfind的区别,但是我想问如果想从右向左查找,第一位是0然后向左一个是-1、-2、-3……这样可以用什么bif吗?之前理解错的从右向左就是这样理解的

Twilight6 发表于 2020-6-14 14:52:12

本帖最后由 Twilight6 于 2020-6-14 14:56 编辑



但是我想问如果想从右向左查找,第一位是0然后向左一个是-1、-2、-3

你理解错了

从右向左的索引值如果是负数索引是从 -1 开始 而不是 0 开始

正从右向左的正数索引是 len(self)-1 ~ 0

0 开始是正数索引的从左向右哦~

还有就是你的问题有点看不懂,能再解释解释不?

liuzhengyuan 发表于 2020-6-14 18:41:37

是这样的
比如
"hsaahjxc".rfind("h")
就是先从右往左
先看 c 不对
再看 x 不对
再看 j 不对
最后看 h 对啦{:10_298:},所以最后返回 第 4 的(其实是第五个,只不过列表是从 0 开始的)

Arcticfoxer 发表于 2020-6-16 01:24:38

liuzhengyuan 发表于 2020-6-14 18:41
是这样的
比如
"hsaahjxc".rfind("h")


谢谢哒,我理解,比如:
"hsaasssshjxc".rfind("h")
因为是从右边开始找的所以返回的是8

但我想问,有没有是那种从右边开始数,返回值也是从右边数的?
比如:
"hsaasssshjxc".XXX("h")
3

Arcticfoxer 发表于 2020-6-16 01:27:07

Twilight6 发表于 2020-6-14 14:52
你理解错了

从右向左的索引值如果是负数索引是从 -1 开始 而不是 0 开始


就是说右边第一位是-1?涨姿势了

但我想问,有没有是那种从右边开始数,返回值也是从右边数的?
比如:
"hsaasssshjxc".XXX("h")
从右边开始数如果c是-1 那x是-2j是-3h是-4 ,有没有这种函数是返回-4的

Twilight6 发表于 2020-6-16 06:44:55

Arcticfoxer 发表于 2020-6-16 01:27
就是说右边第一位是-1?涨姿势了

但我想问,有没有是那种从右边开始数,返回值也是从右边数的?


应该没有,不管是find 和 index 都是返回原列表的正索引

而且变负数没什么意义,位置参数都是同样的

liuzhengyuan 发表于 2020-6-16 07:12:55

Arcticfoxer 发表于 2020-6-16 01:24
谢谢哒,我理解,比如:
"hsaasssshjxc".rfind("h")
因为是从右边开始找的所以返回的是8


你可以len() 和 rfind 配合做出反着数的效果
页: [1]
查看完整版本: rfind()和find()