2015-01-19 3 views
1

Я пытаюсь найти простой способ взять строку в строке из файла, который читается с помощью readline(). В частности, существует множество целочисленных значений, который где я бегу в вопросы:Преобразование строковых значений в список python

10 20 30 

Я хотел бы значения выше, которые будут преобразованы в список отдельных целых чисел:

[10, 20, 30] 

Значения затем суммироваться в отдельном классе. Я уверен, что здесь есть что-то простое, но я просто рисую пробел. Заранее спасибо!

Вот более контекст относительно того, что я пытаюсь сделать. Я передаю целые числа в методе updateMany в моем классе:

vals = infile.readline() 
a.updateMany(int(vals.split()) 

updateMany() принимает список и суммирует их, добавив их в список локальной переменной класса.

+0

Покажите нам, что вы попробовали, и добавьте еще несколько примеров. – Mehraban

+0

Извините, - добавлено выше. TY! – lrryhll

ответ

5

Например:

thelist = [int(s) for s in thestring.split()] 
2

Вы могли бы использовать:

x = [int(i) for i in "10 20 30".split()] 

затем

sum(x) 
2

Вы ван использовать map(). Он берет элементы из списка и применяет к ним заданную функцию.

>>> string = "10 20 30" 
>>> map(int, string.split()) 
[10, 20, 30] 
0

Если вы просто использовать пространство в качестве разделителя, вы можете использовать метод расщепления строкового объекта:

>>> num_line = '10 20 30' 
>>> [int(num) for num in num_line.split() if num] 
[10, 20, 30] 

Если разделитель более чем один символ, как «» и «» или пространство, вы можете использовать re.split():

>>> import re 
>>> re_str = "[,. ]" 
>>> num_line = '10, 20, 30.' 
>>> [int(num) for num in re.split(re_str, num_line) if num] 
[10, 20, 30] 
0

Спасибо всем за вашу помощь и различные способы решения этой. В результате я получил следующие значения:

intList = [int(i) for i in vals.split(sep=' ')] 
a.updateMany(intList) 

Приветствия!

Смежные вопросы