在python中拆分一个字符串

时间:2010-10-12 12:28:23

标签: python string

          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来获取值吗?

6 个答案:

答案 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]
相关问题