Проверьте, соответствуют ли первые буквы последовательных слов в строке акрониму другой строки

Меня удивляет, что это еще не упоминалось, поэтому для полноты ...

Вы можете выполнить распаковку списка с помощью оператора «splat»: *, который также будет скопируйте элементы вашего списка.

old_list = [1, 2, 3]

new_list = [*old_list]

new_list.append(4)
old_list == [1, 2, 3]
new_list == [1, 2, 3, 4]

Очевидным недостатком этого метода является то, что он доступен только в Python 3.5 +.

Сроки, однако, это работает лучше, чем другие распространенные методы.

x = [random.random() for _ in range(1000)]

%timeit a = list(x)
%timeit a = x.copy()
%timeit a = x[:]

%timeit a = [*x]

#: 2.47 µs ± 38.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
#: 2.47 µs ± 54.6 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
#: 2.39 µs ± 58.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

#: 2.22 µs ± 43.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
-2
задан michael 24 March 2019 в 02:18
поделиться

1 ответ

Я не понимаю ваш ожидаемый результат. Вы имеете в виду так:

import re

l = ['hello my name is michael',
    'hello michael is my names',
    'hello michaela is my name',
    'hello my name is michelle',
    'hello i am Michael',
    'hello my lastname is michael',
    'hello michael',
    'hello my name is michael brown']

s = "Hello my name is Michael"

s = s.lower().split()
for item in l:
    d = item.lower().split()
    count = 0
    for ss in s:
        try:
            if ss in d or re.search(ss+"\w+",item.lower()).group() in d:
                count += 1
        except:
            pass
    print (item, count)
0
ответ дан Yusufsn 24 March 2019 в 02:18
поделиться
Другие вопросы по тегам:

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