Удалить повторяющиеся слова, но сохранить повторяющиеся числа в предложении

Если вам нужна локальная база данных, вы можете проверить, что IPInfoDB может предложить.

Если вы можете использовать веб-службу, там есть номер, но Я не уверен, что позволяют их Условия предоставления услуг. Поиск Google для «веб-службы поиска геолокации ip» раскрывает некоторые вещи, но многие из них являются коммерческими продуктами, и вам нужно будет внимательно прочитать их ToS, чтобы убедиться, что вы используете их в рамках рекомендаций.

0
задан Chris 18 January 2019 в 15:00
поделиться

1 ответ

Это должно сработать, если вы хотите сохранить первое вхождение каждого нецифрового слова. Вы всегда можете обмануть условие, чтобы оно имело максимум две цифры.

def cleanup(s):
    words = set()
    for (word, nextword) in zip(s.split(), s.split()[1:] + [None]):
        if word.isdigit():
            yield word
            continue
        if not word in words:
            words.add(word)
            yield word
        elif nextword and nextword.isdigit():
            yield word


print ' '.join(cleanup("East Zone Mbc26 East Zone 1 2nd S11B Smds Smoke Damper 1 Status"))
print ' '.join(cleanup("GF Command Room 1 Unit 1 Flow Temperature Temperature"))

Выход

East Zone Mbc26 Zone 1 2nd S11B Smds Smoke Damper 1 Status
GF Command Room 1 Unit 1 Flow Temperature
0
ответ дан sknat 18 January 2019 в 15:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: