2016-11-01 1 views
0

Я пытающиеся цикл через следующий код:Как перебрать несколько строк в строке питона и преобразовать в целые числа:

data = "456432 jfhjsdfjs fhdjsjk 990 fdjsf" 345903 fdsfdfs fsfdsfd 667 fsdfd 456432 sfdsfds fdsfdsfd 778 fdsfds"

Я хочу, чтобы преобразовать число из первой серии чисел каждая строка, так что возвращает следующее (преобразованное в целые числа)

Вот код, который я до сих пор, что сортирует все:

print [int(data.split()[0])]

Я предполагаю, что мне придется прокручивать каждую строку, продолжая потянув за пункт 0 из каждой строки. Хотя я не уверен, что я нахожусь в лучшем рабочем процессе для этого.

+0

'[INT (строка. split() [0]) для строки в data.split ('\ n')] 'является одним из способов сделать это. – Evert

ответ

1

Вы должны перебирать построчно, а затем сделать split()[0], чтобы получить первое значение:

[int(line.split()[0]) for line in data.splitlines()] 
+0

О, черт возьми, я слишком много читал в кодовом гольф-поле, я почти прокомментировал высказывание «-1 байт, если вы удалили пробел перед' for' » – FlipTack

+0

Большое спасибо. Работал как шарм! –

0
y = [int(x) for x in data.split() if x.isdigit() and int(x) > 99999] 
y.sort() 

будет возвращать список всех чисел в этой строке, как Интс, которые состоят из 6 цифр

редактировать: не возвращать, а у будет назначен, а затем сортируется = D так на самом деле, у будет список всех целых чисел в этой строке, которые состоят из 6 цифр

+0

не то, что хочет OP ..... – MooingRawr

+0

для d в data.split ('\ n'): – appills

+0

OP хочет первое число в каждой строке и превращается в число – MooingRawr

0

Еще один короткий решение, чтобы получить число в начале каждой строки с помощью re.findall функции (от re модуля) с re.MULTILINE флагом:

import re 

# your 'data' with text 

print(re.findall(r'^\d+\b', data, flags=re.MULTILINE)) 

Выход:

['456432', '345903', '456432'] 
Смежные вопросы