2012-04-17 3 views
1

Можно создать дубликат:
Python: How do I convert an array of strings to an array of numbers?Mapping Int в список - Python

Я пытаюсь отобразить список строк в Int, и когда я карта функции Int это расщепление 2 значных числа в списки 2 пункта:

у меня есть следующий код:

>>> MyList 
['10', '5', '6', '7', '8', '9'] 
>>> MyList = [map(int,x) for x in MyList] 
>>> MyList 
[[1, 0], [5], [6], [7], [8], [9]] 

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

[10, 5, 6, 7, 8, 9] 

ответ

9

Использование map(int, ... непосредственно в списке:

map(int, MyList) 

или, в большинстве случаев, использовать список понимание:

[int(x) for x in MyList] 

но не оба.

map применяет функцию к каждому элементу в итерируемой отдельно - это его цель.

Аналогично, понимание списка выполняет выражение для каждого элемента в итерабельном, поэтому вам не нужно map, просто выражение, которое вы хотите запускать каждый раз.

+0

Благодарим за быстрый ответ – Nick

+0

Также обратите внимание, что в python3.x 'map' возвращает итератор, а не список. Таким образом, в python2.x 2 вещи выше эквивалентны, тогда как в python3.x есть небольшая разница. – mgilson

+0

@mgilson Хорошо, но мы знаем, что в этом случае он на Python 2 из-за кода в своем ответе. – agf

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