2013-11-26 3 views
-1

Как бы вы могли использовать функцию .split() на основе условий?Дальнейшее использование функции .split() на основе условий?

Допустим, у меня есть исходные данные:

Apples,Oranges,Strawberries Green beans,Yellow green Beans,Tomatoes,Broccoli 

Мой предполагаемый результат является:

['Apples','Oranges','Strawberries','Green beans','Yellow green Beans','Tomatoes','Brocolli'] 

Обратите внимание, что 'Strawberries' и 'Green beans' расщепляются.

Что было бы лучшим способом приблизиться к этому, чтобы разбить его на намеченный путь?

+6

Почему бы вам не разделить «зеленый» и «бобы»? Какое правило вы хотите применить? –

+0

Должна быть запятая между 'Strawberries' и' Green beans'? И есть ли «необработанные данные», которые должны быть строкой? Вы не ставили на него кавычки, так что трудно сказать. – user2357112

+1

Если недостающая запятая - это то, что вам нужно, чтобы иметь дело с этим, это может потребовать нетривиальной обработки естественного языка. Если это так, вам нужно будет признать, что будут ошибки. – user2357112

ответ

0

Возможно, что-то вроде этого? Я пользуюсь тем фактом, что ваши продукты являются множественными:

#!/usr/local/cpython-3.3/bin/python 

def splitter(string, use_s_trick=False): 
    plant_foods_list = string.split(',') 
    for plant_food in plant_foods_list: 
     if use_s_trick: 
      words = plant_food.split(' ') 
      words_list = [] 
      for word in words: 
       words_list.append(word) 
       if word.endswith('s'): 
        yield ' '.join(words_list) 
        words_list = [] 
     else: 
      yield plant_food 

plant_foods_str = 'Apples,Oranges,Strawberries Green beans,Yellow green Beans,Tomatoes,Broccoli' 
for plant_food in splitter(plant_foods_str, use_s_trick=True): 
    print(plant_food) 
+0

'#!/Usr/local/cpython-3.3/bin/python'? В самом деле? Ну, я лично стараюсь, чтобы мои сценарии были как можно более переносимыми ... – glglgl

+0

Легко изменить, и он показывает, какую версию Python я тестировал. Кроме того, он появляется в верхней части. – dstromberg

Смежные вопросы