В Python, как разбить строку на несколько целых чисел?

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

до сих пор я имею:

reader = csv.reader([data.data], skipinitialspace=True) for r in reader: print r 

который позволяет мне распечатывать значения, как хранить их как отдельные целые числа?

Вы могли бы сделать это так. Предполагая, что s – ваша линия от reader .

 >>> s='2 3 4 5 6' >>> s.split(' ') ['2', '3', '4', '5', '6'] #just split will give strings >>> [int(i) for i in s.split(' ')] #typecasting to ints [2, 3, 4, 5, 6] #now you have ints 

Слово осторожности, хотя, я предполагаю, что нет другого типа данных в строке от reader . В противном случае этот код может привести к сбою. Вы можете, конечно, try: except: обходить это или использовать более тонко настроенные методы синтаксического анализа.

ОБНОВЛЕНИЕ 0: блестящий один лайнер от @Pavel Annosov – map(int, s.split()) . map – отличная встроенная функция python, которая позволяет сопоставить функцию с любым итерабельным.

ОБНОВЛЕНИЕ 1: Его довольно просто посмотреть, как это будет работать. но сделать это еще более понятным для @ user2152165

 ints_list = [] for r in reader: ints_list = map(int, r.strip().split(' ')) 

ints_list списке ints_list есть список ваших ints. делай то, что хочешь с ним …

Возможно, это полезно кому-то, но если вы хотите вернуть пустой массив вместо ошибки, когда строка имеет длину 0 байт, вы можете улучшить один лайнер с помощью встроенного, если это так:

 s = "1 2 3" result = [] if s == "" else map(int, s.split(" ")) print result