Как взять числа из строк, которые имеют разную длину и слово появляется несколько раз - PullRequest
0 голосов
/ 13 января 2020

У меня есть файл, который выглядит следующим образом:

john|600
doe|300
john|1000

Я хотел взять числа, длина которых отличается от линий, поэтому я попытался отделить имена и эти числа, используя name2, points2 = line[:-1].split('|'), но это кажется, забирает последние 0 из 1000. И 1000 печатается без последнего нуля.

Ответы [ 2 ]

0 голосов
/ 13 января 2020

В данный момент вы удаляете последний символ из каждой строки с line[:-1]. Это разрезает строку до, но не включая последний символ. Вот почему вы получаете 100 вместо 1000.

Вместо этого разбить на все line:

name2, points2 = line.split('|')

И число должно быть сохранено в points2. Вам нужно будет использовать int(points2), если вы хотите int вместо str.

0 голосов
/ 13 января 2020

По регулярным выражениям (python модуль re):

re.findall(r'\w+(?=\|)', "john|600")

для имен и

re.findall(r'(?<=\|)\d+', "john|600")

для чисел.

...