鱼C论坛

 找回密码
 立即注册
查看: 2748|回复: 2

字符串索引

[复制链接]
发表于 2020-3-2 18:14:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 pythonsrj 于 2020-3-2 18:33 编辑

1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-2 18:33:33 | 显示全部楼层
写一个笨方法:

  1. s1 = s2 = "长白山上有一品红,一品红在长白山上"
  2. l1, l2, l3, l4 = [], [], list(s1), list(s1)

  3. while s1.find("长白山") != -1:
  4.     idx = s1.find("长白山")
  5.     del l3[idx: idx + 3]
  6.     l1.append(idx)
  7.     s1 = "".join(l3)

  8. while s2.find("一品红") != -1:
  9.     idx = s2.find("一品红")
  10.     del l4[idx: idx + 3]
  11.     l2.append(idx)
  12.     s2 = "".join(l4)

  13. print("长白山在字符串中的全部索引:" + " ".join(str(i) for i in l1))
  14. print("一品红在字符串中的全部索引:" + " ".join(str(i) for i in l2))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 18:58:16 | 显示全部楼层
本帖最后由 walleeee 于 2020-3-2 19:02 编辑
  1. string='长白山上有一品红,一品红在长白山上'
  2. list1=['长白山','一品红','长白山','长白山','一品红']
  3. list1=list(set(list1))
  4. for each in list1:
  5.     a=-1
  6.     while True:
  7.         try:
  8.             b=string[a+1:].index(each)
  9.             a=a+1+b
  10.             print('%s在位置%d'%(each,a+1))
  11.         except:
  12.             break
复制代码

楼上的好,学到了find
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-1 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表