2016-07-15 7 views
-1

У меня есть список, как указано выше:Как преобразовать строки в целые числа в питона sickit учиться

probs= ['2','3','5','6'] 

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

resultat=[2, 3, 4, 5, 6] 

я попробовал некоторые решения, появляющиеся на этой ссылке: How to convert strings into integers in Python? , такие, как этот один:

new_list = list(list(int(a) for a in b) for b in probs if a.isdigit()) 

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

+0

'resultat = [Int (пункт) для элемента в Probs]'? – mgilson

+0

Просто проблема с синтаксисом. Вы создаете список списков. Вместо этого используйте: 'new_list = list (int (a) для a в случае, если a.isdigit())' – user1952500

ответ

0
>>> probs= ['2','3','5','6'] 
>>> probs= map(int, probs) 
>>> probs 
[2, 3, 5, 6] 

или (как комментировал):

>>> probs= ['2','3','5','6'] 
>>> probs = [int(e) for e in probs] 
>>> probs 
[2, 3, 5, 6] 
>>> 
+0

Спасибо @Billal за ответ. но я получаю следующую ошибку: ValueError: недействительный литерал для int() с базой 10: '0.00390625' –

+1

он должен изменить int() на float(), и он работает очень хорошо. Я ценю это –

3

Использовать int() и перечислить порядок перебора списка и преобразовать значения строк в целые числа.

>>> probs= ['2','3','5','6'] 
>>> num_probs = [int(x) for x in probs if x.isdigit()] 
>>> num_probs 
[2, 3, 5, 6] 
2

если ваш список, как указано выше, вам не нужно, чтобы проверить, если значение является числом. что-то вроде

probs = ["3","4","4"]; 
resultat = []; 

for x in probs: 
    resultat.append(int(x)) 

print resultat 

будет работать

+0

Спасибо @ Idco0 за ответ. но я получаю следующую ошибку: Файл «stdin», lin 2 resultat.append (int (x)) IdentationError: ожидается отступом блок –

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