gpt4 book ai didi

python - 在第三次出现字符 python 后剥离字符串

转载 作者:太空狗 更新时间:2023-10-29 20:32:26 27 4
gpt4 key购买 nike

我想去除第三个字符之后的所有字符,例如 -。

我在网上找到了这段代码,它可以工作,但我在学习它的工作原理时遇到了困难,想问一下,以便我能完全理解它。

 def indexList(s, item, i=0):
"""
Return an index list of all occurrances of 'item' in string/list 's'.
Optional start search position 'i'
"""
i_list = []
while True:
try:
i = s.index(item, i)
i_list.append(i)
i += 1
except:
break
return i_list

def strip_chrs(s, subs):
for i in range(indexList(s, subs)[-1], len(s)):
if s[i+1].isalpha():
return data[:i+1]

data = '115Z2113-3-777-55789ABC7777'
print strip_chrs(data, '-')

这是我的问题on the while True: line 什么是真的?也关于异常(exception):除了什么?为什么在此处编码中断?

提前致谢!

最佳答案

这里有一个方法:

def trunc_at(s, d, n=3):
"Returns s truncated at the n'th (3rd by default) occurrence of the delimiter, d."
return d.join(s.split(d, n)[:n])

print trunc_at("115Z2113-3-777-55789ABC7777", "-")

工作原理:

  1. 字符串 s 在每次出现分隔符 d 时使用 s.split(d) 拆分成一个列表。我们使用 split 的第二个参数来指示要执行的最大拆分次数(因为没有理由在第一个 n 次之后继续拆分)。结果是一个列表,例如["115Z2113", "3", "777", "55789ABC7777"]
  2. 使用 [:n] 获取列表中前 n 项的一部分。结果是另一个列表,例如 ["115Z2113", "3", "777"]
  3. 列表被连接回一个字符串,使用 d.join(...) 在列表的每个项目之间放置分隔符 d,结果是,例如,“115Z2113-3-777”

关于python - 在第三次出现字符 python 后剥离字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com