Зачем мне нужна секунда для l oop с добавлением в этот список? - PullRequest
0 голосов
/ 02 мая 2020

Я вытягиваю числа из файла, используя регулярные выражения. При попытке печати чисел, он только дает мне пустой список.

import re
fh = open('sample.txt')

for line in fh:
    nums = re.findall('[0-9]+', line)
print(nums)

print(nums) печатает пустой список. Почему? Мне пришлось создать секунду для l oop и добавить в другой список, чтобы получить числа.

import re 
fh = open('sample.txt')
numbers = []

for line in fh:
    nums = re.findall('[0-9]+', line)
    for num in nums:
        num = int(num)
        numbers.append(num)
print(numbers)

Почему print(numbers) возвращает числа из файла, а print(nums) нет?

sample.txt извлекает данные из: http://py4e-data.dr-chuck.net/regex_sum_483474.txt

1 Ответ

1 голос
/ 02 мая 2020

Потому что вы печатаете только последний матч ... Попробуйте с этим:

import re
fh = open('sample.txt')

for line in fh:
    nums = re.findall('[0-9]+', line)
    print(nums)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...