Сплит и беру n слов с конца - PullRequest
0 голосов
/ 24 января 2011

Как бы вы взяли последние n конечных слов из разделенной строки? Например, у меня есть эти строки:

1. 123.by2.gateway.edge.messenger.live.com
2. messenger.com
3. 10.17.123.45
4. 126.by2.gateway.edge.messenger.live.com
5. 14.messenger.live.com

Я хочу взять 3 последних слова из адресов, чтобы для строк 1, 4 и 5 у меня был «messenger.live.com», а строки 2 и 3 остались без изменений. Это то, что я сделал, чтобы добиться этого, но, похоже, хромает:

link = line.split('.') 
if len(link) > 4: # to bypass the IP address
    plink = link[-1:-3] ?

1 Ответ

4 голосов
/ 24 января 2011

Вы хотите взять

plink = link[-3:]

Чтобы игнорировать числовой IP, вы можете использовать это:

link = line.split('.')
if len(link) > 3 and link[-1].isalpha():
    plink = link[-3:]

Это будет игнорировать 2. и 3. при правильном выполнении 5.(как правильно заметил SilentGhost, ваш код игнорирует 5).

...