a="aaaa#b:c:"
>>> for i in a.split(":"):
... print i
... if ("#" in i): //i=aaaa#b
... print only b
在if循环中如果i = aaaa #b如何在hash之后获取值。我们应该使用rsplit来获取值吗?
答案 0 :(得分:2)
以下内容可以替换您的if
声明。
for i in a.split(':'):
print i.partition('#')[2]
答案 1 :(得分:1)
a = "aaaa#b:c:"
print(a.split(":")[0].split("#")[1])
答案 2 :(得分:1)
我建议来自:Python Docs
str.rsplit([sep [,maxsplit]])
使用sep作为分隔符,返回字符串中单词的列表 串。如果给出maxsplit,则最多完成maxsplit分割,即 最右边的。如果未指定sep或None,则为任何空白字符串 是一个分隔符。除了从右边分裂外,rsplit()表现得很好 喜欢split(),详见下文。
所以回答你的问题是的。
编辑:
这取决于你希望如何索引你的字符串,看起来Rstring是从右边做的,所以如果你的数据总是“最右边”你可以索引0(或1,不知道python索引如何),每次,而不是必须对返回的数组进行大小检查。
答案 3 :(得分:1)
>>> a="aaaa#b:c:"
>>> a.split(":",2)[0].split("#")[-1]
'b'
答案 4 :(得分:0)
这样的事情:
>>> a = "aaaa#b:c:"
>>> a[a.find('#') + 1]
'b'
或者如果您需要特定的出现,请使用正则表达式...
答案 5 :(得分:-1)
split
可以很好地完成这项工作。仅当您需要从最后一个'#'拆分时才使用rsplit
。
a="aaaa#b:c:"
>>> for i in a.split(":"):
... print i
... b = i.split('#',1)
... if len(b)==2:
... print b[1]