Разделить строку в Python - PullRequest
       5

Разделить строку в Python

1 голос
/ 12 октября 2010
          a="aaaa#b:c:"
          >>> for i in a.split(":"):
          ...   print i
          ...   if ("#" in i):   //i=aaaa#b
          ...     print only b

В цикле if, если i = aaaa # b, как получить значение после хеша. Должны ли мы использовать rsplit для получения значения?

Ответы [ 6 ]

2 голосов
/ 13 октября 2010

Следующее может заменить ваше заявление if.

for i in a.split(':'):
    print i.partition('#')[2]
1 голос
/ 12 октября 2010
>>> a="aaaa#b:c:"
>>> a.split(":",2)[0].split("#")[-1]
'b'
1 голос
/ 12 октября 2010

Я бы посоветовал: Документы Python

str.rsplit ([sep [, maxsplit]])

Возвращает список слов в строке, используя sep в качестве разделителя. строка. Если задан maxsplit, то делается не более maxsplit, самые правые. Если sep не указан или отсутствует, любая строка пробела это разделитель. За исключением разделения справа, rsplit () ведет себя как split (), которая подробно описана ниже.

поэтому, чтобы ответить на ваш вопрос, да.

EDIT:

Это зависит от того, как вы хотите индексировать свои строки, похоже, что Rstring делает это справа, поэтому, если ваши данные всегда «самые правые», вы можете индексировать на 0 (или 1, не уверен, как Python индексирует), каждый раз вместо проверки размера возвращаемого массива.

1 голос
/ 12 октября 2010
a = "aaaa#b:c:"
print(a.split(":")[0].split("#")[1])
0 голосов
/ 12 октября 2010

вам действительно нужно использовать сплит? разделить создать список, так что не так эффективно ...

что-то вроде этого:

>>> a = "aaaa#b:c:"
>>> a[a.find('#') + 1]
'b'

или, если вам нужен особый случай, используйте вместо этого регулярное выражение ...

0 голосов
/ 12 октября 2010

split сделало бы эту работу хорошо. Используйте rsplit, только если вам нужно отделить от последнего '#'.

a="aaaa#b:c:"
>>> for i in a.split(":"):
...   print i
...   b = i.split('#',1)
...   if len(b)==2:
...     print b[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...