Есть ли лучший способ токенизировать некоторые строки?

Я думаю, что самый простой и ясный ответ на этот вопрос дан Роем Ошеровым в его книге Искусство модульного тестирования (стр. 85)

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

С другой стороны, тест будет использовать макетный объект, чтобы проверить, не прошел тест или нет. [...]

Опять же, макет-объект - это объект, который мы используем, чтобы проверить, не прошел тест или нет.

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

0
задан loksoni 15 January 2019 в 15:34
поделиться

3 ответа

См. Это: -

>>> list1 = ['I am Batman.','I loved the tea.','I will never go to that mall again!']
>>> [i.split() for i in list1]  
# split by default slits on whitespace strings and give output as list

[['I', 'am', 'Batman.'], ['I', 'loved', 'the', 'tea.'], ['I', 'will', 'never', 'go', 'to', 'that', 'mall', 'again!']]
0
ответ дан Vicrobot 15 January 2019 в 15:34
поделиться

Ваш оригинальный код уже почти у цели.

>>> str = ['I am Batman.','I loved the tea.','I will never go to that mall again!']
>>> s=[]
>>> for line in str:
...   s.append(line.split())
...
>>> print(s)
[['I', 'am', 'Batman.'], ['I', 'loved', 'the', 'tea.'], ['I', 'will', 'never', 'go', 'to', 'that', 'mall', 'again!']]

line.split() дает вам список, поэтому добавьте его в свой цикл. Или идите прямо к пониманию:

[line.split() for line in str]

Когда вы говорите s.append([]), у вас есть пустой список с индексом «а», например:

L = []

Если вы добавляете результат split к этому, как и L.append([1]), вы получите список в этом списке: [[1]]

0
ответ дан doctorlove 15 January 2019 в 15:34
поделиться

Вы должны использовать split() для каждой строки в цикле

Пример со списком:

str = ['I am Batman.','I loved the tea.','I will never go to that mall again!']

[s.split() for s in str]

[['I', 'am', 'Batman.'],
 ['I', 'loved', 'the', 'tea.'],
 ['I', 'will', 'never', 'go', 'to', 'that', 'mall', 'again!']]
0
ответ дан frankegoesdown 15 January 2019 в 15:34
поделиться
Другие вопросы по тегам:

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