Преобразование строки в целое с помощью map()
В следующем примере я пытаюсь преобразовать первый список в целочисленный список, используя функцию карты, как я могу достичь этого
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]
Ответы
Ответ 1
>>> 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]]
Надеюсь, что это устранит путаницу.
Ответ 2
>>> T1 = ['13', '17', '18', '21', '32']
>>> print [int(x) for x in T1]
[13, 17, 18, 21, 32]
Вам не нужна карта внутри вашего понимания списка. Карта создает другой список, поэтому вы получите список списка.
Предостережение: это будет работать, если строки будут присвоены номерам, в противном случае это вызовет исключение.
Ответ 3
1. Во-первых, функция map - это map (func, iterable) 2. Посмотрите на этот пример:
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' работает с '13' как 13
Ответ 4
Вы можете сделать это так:
>>>T1 = ['13', '17', '18', '21', '32']
>>>list(map(int,T1))