Вопрос по python – Преобразовать строку в целое число с помощью map ()

10

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

<code>T1 = ['13', '17', '18', '21', '32']
print T1
T3=[map(int, x) for x in T1]
print T3
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]]

Expected is:

T3=[13,17,18,21,32] 
</code>

Ваш Ответ

4   ответа
33
>>> T1 = ['13', '17', '18', '21', '32']
>>> T3 = map(int, T1)
>>> T3
[13, 17, 18, 21, 32]

>>> T3 = [int(x) for x in T1]
>>> T3
[13, 17, 18, 21, 32]

так что вы делаете

>>> T3 = [[int(letter) for letter in x] for x in T1]
>>> T3
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]]

Надеюсь, что это устранит путаницу.

отличный ответ .....
Хорошо, спасибо..... Rajeev
2
>>> T1 = ['13', '17', '18', '21', '32']
>>> print [int(x) for x in T1]
[13, 17, 18, 21, 32]

так что вы получите список.

Предостережение: это будет работать, если строки предоставлены как числа, иначе это вызовет исключение.

Если вы хотите использовать map (), для Python 3.6.0 вам нужно сделать: list (map (int, T1))
Приятно спасибо ..... Rajeev
-4

>>>T1 = ['13', '17', '18', '21', '32']
>>>list(map(int,T1))
Я не думаю, что это заслуживает понижения, я только что попробовал в Python3.6.0. Ответ Джамилака дает результат:<map object at 0x05CEABF0> но если вы используете список (map (int, T1)), он дает результат [13, 17, 18, 21, 32]
Чем это отличается от jamylak?answer?
1

1.. посмотрите этот пример:

T1=['13','17','18','21','32']
T3=[map(int, x) for x in T1]
print T3
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]]

когда выбираем x out, такой как «13», является последовательностью, поэтому map (int, «13») возвращает [1,3], поэтому итерируемое в map (func, iterable) является строкой.

3. посмотрите этот пример:

T1 = ['13', '17', '18', '21', '32']
>>>list(map(int,T1))

итерируемый объект в функции карты - это list.so 'int & apos; работает на "13" как 13

Похожие вопросы