我想在第三个字符后删除所有字符,例如 - 比如说.
我在网上发现了这个代码并且它有效,但是我无法学习它是如何工作的并且想要问我所以我能完全理解它.
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, '-')
Run Code Online (Sandbox Code Playgroud)
这是我关于while的问题:行什么是真的?另外除了:除了什么?为什么在那里编码?
提前致谢!
kin*_*all 27
这是一种方式:
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", "-")
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
s是在出现的每个分隔分成列表d使用s.split(d).我们使用第二个参数来split指示要执行的最大拆分数(因为没有理由在第一次之后继续拆分n).结果是一个列表,例如["115Z2113", "3", "777", "55789ABC7777"]n使用列表的第一项切片[:n].结果是另一个列表,例如["115Z2113", "3", "777"]d列表的每个项目之间,使用d.join(...),例如,"115Z2113-3-777"以单行方式:
data = '115Z2113-3-777-55789ABC7777'
strip_character = "-"
>>> strip_character.join(data.split(strip_character)[:3])
'115Z2113-3-777'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9962 次 |
| 最近记录: |