Использование split (":") для получения чисел из строки, но я все время пропускаю первое число - PullRequest
0 голосов
/ 02 августа 2020

Мне нужно извлечь 2 числа из нескольких строк.

Это пример и код, который я использую:

data = 'Ant Graph first exam is :2 and the score after the second exam is :10'
print ([int (s) for s in data.split(":") if s.isdigit()])

output [10]

но если я удалю: и немного изменю код:

data = 'Ant Graph first exam is 2 and the score after the second exam is 10'
print ([int (s) for s in data.split(" ") if s.isdigit()])

output [2, 10]

Почему в первом случае я пропускаю число 2?

1 Ответ

3 голосов
/ 02 августа 2020

причина, по которой первый код не работает, заключается в том, что он разделяет ваши данные следующим образом:

["Ant Graph first exam is","2 and the score after the second exam is ","10"] 

Поэтому, когда вы пытаетесь протестировать isdigit() на втором элементе, он не может вернуть di git потому что «2» находится внутри большей строки. И «10» само по себе.

Надеюсь, все ясно, и я не ошибаюсь.

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