Python中如何分割字符串并保留第一个冒号后的全部内容?
解决第一个冒号分割后保留剩余全部内容的问题
这问题我之前处理过,你需要的是仅在第一个冒号处分割字符串,同时直接获取后面的完整内容,不用再额外处理列表拼接。
正确解决方案
Python的split()方法支持传入第二个参数maxsplit,用来指定最多分割的次数。把它设为1,就能只在第一个冒号处完成分割,然后直接取分割后的第二个元素即可:
a = "RT@xyz: AI is awesome" req_ans = a.split(':', 1)[1] # 输出: " AI is awesome" b = "RT@xyz: AI: is awesome" req_ans = b.split(':', 1)[1] # 输出: " AI: is awesome" c = "RT@xyz: AI: is: awesome" req_ans = c.split(':', 1)[1] # 输出: " AI: is: awesome"
为什么之前的方法失效?
- 用
split(':')[1]时,会把字符串中所有冒号都作为分隔符,所以当后面还有冒号时,只能取到第一个冒号和第二个冒号之间的内容,自然不符合需求。 - 用
split(':')[1:]会得到一个包含剩余所有分割片段的列表,虽然可以用':'.join(split(':')[1:])拼接成字符串,但这种写法不如指定maxsplit简洁直观。
内容的提问来源于stack exchange,提问作者Rahul Agarwal
相关产品推荐
相关产品推荐

