【问题标题】:Find all index values for string t in string s?在字符串 s 中查找字符串 t 的所有索引值?
【发布时间】:2021-09-09 18:13:51
【问题描述】:

输入:

s = "ADOBECODEBANC"
t = "ABC"  

输出:

{A:[0,10] , B:[3.9], C:[5,12]}

我们有内置函数吗?

【问题讨论】:

  • {c: [i for i, d in enumerate(s) if c == d] for c in t}

标签: python python-3.x string list substring


【解决方案1】:

没有内置函数,但您可以使用enumerate() 执行任务:

s = "ADOBECODEBANC"
t = "ABC"

out = {}
for i, ch in enumerate(s):
    if ch in t:
        out.setdefault(ch, []).append(i)

print(out)

打印:

{'A': [0, 10], 'B': [3, 9], 'C': [5, 12]}

【讨论】:

  • 这是唯一的解决方案吗?
  • @NITHISHREDDYMINUPURI 当然不是,你可以使用re 模块,或者不使用enumerate() 而是使用计数器变量....
  • @NITHISHREDDYMINUPURI 如果您正在寻找单线,Samwise 的评论可能是一个不错的选择。但是那个比这个慢大约 40%。
猜你喜欢
  • 2023-04-10
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2013-07-15
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多