Как мне обрезать количество слов в Python? - PullRequest
0 голосов
/ 26 октября 2009

Например ...

s = 'The fox jumped over a big brown log.'

k = FUNCTION(s,4)

k should be... "The fox jumped over"

Я могу написать свою собственную функцию, которая разбивает пробелы, вырезает список и затем присоединяется к списку. Но это слишком много работы.

Кто-нибудь еще знает более простой способ?

Ответы [ 4 ]

7 голосов
/ 26 октября 2009

Примерно так:

def f(s, n):
    return ' '.join(s.split()[:n])

Но оно все еще разделяется, нарезается и соединяется ...

2 голосов
/ 26 октября 2009
x = "Hello how are you?"
' '.join(x.split()[1:3])
>>> "how are"

затем вы можете изменить числа 1 и 3 в списке, чтобы получить слова, которые вы хотите вернуть

def split_me(string, start, end, skip):
    return ' '.join(string.split()[start:end:skip])

Помните, что списки индексируются, начиная с 0, и пропустите, чтобы вы могли пропустить слова:

split_me("Hello how are you", 0, 3, 2)
>>> 'hello are'
1 голос
/ 26 октября 2009

Попробуйте что-то вроде этого:

def f(s, n):
    return " ".join( s.split()[:n] )
1 голос
/ 26 октября 2009

Почему вы говорите "это слишком много работы"? Слишком много работы для вас или слишком много для компьютера? Является ли этот код частью кода, критичного к производительности?

Просто делай то, что работает, и переходи к чему-то более важному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...